From 1e9313920e1fa8a8f82b0ecaa43e84a1669b0081 Mon Sep 17 00:00:00 2001 From: Kristian Fiskerstrand Date: Wed, 25 Jan 2017 17:55:47 +0100 Subject: [PATCH] (random/random-drbg.c) Don't memset if length is zero A zero length memset triggers __warn_memset_zero_len() in glibc, so only invoking memset if non-zero value -- A user reported an issue in https://bugs.gentoo.org/show_bug.cgi?id=606740 /usr/include/bits/string3.h:86:7: warning: call to '__warn_memset_zero_len' declared with attribute warning: memset used with constant zero length parameter; this could be due to transposed parameters __warn_memset_zero_len (); which subsequently resulted in linking error for ./.libs/libgcrypt.so: undefined reference to `__warn_memset_zero_len' --- random/random-drbg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/random/random-drbg.c b/random/random-drbg.c index e2fe861..33ae645 100644 --- a/random/random-drbg.c +++ b/random/random-drbg.c @@ -1021,7 +1021,8 @@ drbg_hmac_update (drbg_state_t drbg, drbg_string_t *seed, int reseed) { /* 10.1.2.3 step 2 already implicitly covered with * the initial memset(0) of drbg->C */ - memset (drbg->V, 1, drbg_statelen (drbg)); + if(drbg_statelen (drbg)) + memset (drbg->V, 1, drbg_statelen (drbg)); ret = drbg_hmac_setkey (drbg, drbg->C); if (ret) return ret; -- 2.10.2