Thread (17 messages) 17 messages, 6 authors, 2021-06-29

[dpdk-dev] 回复: [dpdk-stable] [PATCH] crypto/qat: fix uninitilized compiler warning

From: Feifei Wang <hidden>
Date: 2021-05-14 08:30:34

-----邮件原件-----
发件人: David Marchand [off-list ref]
发送时间: 2021年5月14日 16:14
收件人: Feifei Wang [off-list ref]
抄送: John Griffin [off-list ref]; Fiona Trahe
[off-list ref]; Deepak Kumar Jain [off-list ref];
Herbert Guan [off-list ref]; Jerin Jacob
[off-list ref]; dev [off-list ref]; nd
[off-list ref]; dpdk stable [off-list ref]; Ruifeng Wang
[off-list ref]
主题: Re: [dpdk-stable] [PATCH] crypto/qat: fix uninitilized compiler warning

On Fri, May 14, 2021 at 10:01 AM Feifei Wang [off-list ref]
wrote:
quoted
quoted
quoted
@@ -1190,8 +1190,8 @@ static int partial_hash_compute(enum
icp_qat_hw_auth_algo hash_alg,
quoted
                        uint8_t *data_out)  {
        int digest_size;
-       uint8_t digest[qat_hash_get_digest_size(
-                       ICP_QAT_HW_AUTH_ALGO_DELIMITER)];
+       uint8_t *digest = (uint8_t *)calloc(qat_hash_get_digest_size(
+                               ICP_QAT_HW_AUTH_ALGO_DELIMITER),
+ sizeof(uint8_t));
calloc can fail.
cast is unneded.

A simple uint8_t digest[...] = { 0 } would do the job.
Thanks for your comment. Actually, we have tried to use this simple
method:
quoted
 uint8_t
digest[qat_hash_get_digest_size(ICP_QAT_HW_AUTH_ALGO_DELIMITER)]
=
quoted
{0};

And it will report compile error:
../drivers/crypto/qat/qat_sym_session.c:1194:4: error: variable-sized
object may not be initialized
quoted
 1194 |    ICP_QAT_HW_AUTH_ALGO_DELIMITER)] = {0};
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../drivers/crypto/qat/qat_sym_session.c:1194:40: warning: excess
elements in array initializer
quoted
 1194 |    ICP_QAT_HW_AUTH_ALGO_DELIMITER)] = {0};
      |                                        ^
../drivers/crypto/qat/qat_sym_session.c:1194:40: note: (near
initialization for ‘digest’)
ninja: build stopped: subcommand failed.

I think this is because compiler cannot know the size of digest due to
function 'qat_hash_get_digest_size' during  compiling time.
Ok, I had not noticed the function call.

Please check dynamic allocation succeeds.
+ free this temp buffer before leaving this helper function.
Thanks for this comments, I will add check and free operations for this dynamic allocation
in the next version

Best Regards
Feifei 

--
David marchand
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help