crypto: caam - Avoid GCC memset bug warning
authorHerbert Xu <herbert@gondor.apana.org.au>
Wed, 28 Dec 2022 11:03:32 +0000 (19:03 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 6 Jan 2023 09:15:46 +0000 (17:15 +0800)
Certain versions of gcc don't like the memcpy with a NULL dst
(which only happens with a zero length).  This only happens
when debugging is enabled so add an if clause to work around
these warnings.

A similar warning used to be generated by sparse but that was
fixed years ago.

Link: https://lore.kernel.org/lkml/202210290446.qBayTfzl-lkp@intel.com
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Kees Cook <keescook@chromium.org>
Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tested-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/caam/desc_constr.h

index 62ce6421bb3fe7ba5e6a213d60ae88d9df53b09e..824c94d44f943da22191c7726a647e79cdb4fcd5 100644 (file)
@@ -163,7 +163,8 @@ static inline void append_data(u32 * const desc, const void *data, int len)
 {
        u32 *offset = desc_end(desc);
 
-       if (len) /* avoid sparse warning: memcpy with byte count of 0 */
+       /* Avoid gcc warning: memcpy with data == NULL */
+       if (!IS_ENABLED(CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG) || data)
                memcpy(offset, data, len);
 
        (*desc) = cpu_to_caam32(caam32_to_cpu(*desc) +