Potential sizeof vs. mem*() bugs
Pawel Worach
pawel.worach at gmail.com
Thu Aug 4 11:50:13 UTC 2011
Hi,
clang gained a new warning for checking the sizeof argument in memset / memcpy calls, this triggers a couple of times in the FreeBSD tree, here is a brief summary:
kerberos5/lib/libhx509/../../../crypto/heimdal/lib/hx509/cert.c:357:28: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(cert, 0, sizeof(cert));
~~~~ ^~~~
--
kerberos5/lib/libhx509/../../../crypto/heimdal/lib/hx509/cert.c:357:28: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(cert, 0, sizeof(cert));
~~~~ ^~~~
--
kerberos5/lib/libkrb5/../../../crypto/heimdal/lib/krb5/crypto.c:521:25: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
memset(x, 0, sizeof(x));
~ ^
--
kerberos5/lib/libkrb5/../../../crypto/heimdal/lib/krb5/crypto.c:521:25: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
memset(x, 0, sizeof(x));
~ ^
--
lib/libtelnet/../../contrib/telnet/libtelnet/sra.c:306:24: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
memset(pass,0,sizeof(pass));
~~~~ ^~~~
--
lib/libthread_db/arch/amd64/libpthread_md.c:95:48: warning: argument to 'sizeof' in 'memcpy' call is the same expression as the source; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memcpy(&uc->uc_mcontext.mc_fpstate, r, sizeof(r));
~ ^
lib/libthread_db/arch/amd64/libpthread_md.c:101:48: warning: argument to 'sizeof' in 'memcpy' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memcpy(r, &uc->uc_mcontext.mc_fpstate, sizeof(r));
~ ^
--
lib/libthread_db/arch/amd64/libpthread_md.c:95:48: warning: argument to 'sizeof' in 'memcpy' call is the same expression as the source; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memcpy(&uc->uc_mcontext.mc_fpstate, r, sizeof(r));
~ ^
lib/libthread_db/arch/amd64/libpthread_md.c:101:48: warning: argument to 'sizeof' in 'memcpy' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memcpy(r, &uc->uc_mcontext.mc_fpstate, sizeof(r));
~ ^
--
,10001:0lib/bind/isc/../../../contrib/bind9/lib/isc/hmacsha.c:228:24: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(ctx, 0, sizeof(ctx));
~~~ ^~~
lib/bind/isc/../../../contrib/bind9/lib/isc/hmacsha.c:296:24: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(ctx, 0, sizeof(ctx));
~~~ ^~~
lib/bind/isc/../../../contrib/bind9/lib/isc/hmacsha.c:363:24: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(ctx, 0, sizeof(ctx));
~~~ ^~~
lib/bind/isc/../../../contrib/bind9/lib/isc/hmacsha.c:430:24: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(ctx, 0, sizeof(ctx));
~~~ ^~~
lib/bind/isc/../../../contrib/bind9/lib/isc/hmacsha.c:497:24: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(ctx, 0, sizeof(ctx));
~~~ ^~~
--
lib/bind/isc/../../../contrib/bind9/lib/isc/sha2.c:898:28: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(context, 0, sizeof(context));
~~~~~~~ ^~~~~~~
lib/bind/isc/../../../contrib/bind9/lib/isc/sha2.c:1211:28: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(context, 0, sizeof(context));
~~~~~~~ ^~~~~~~
lib/bind/isc/../../../contrib/bind9/lib/isc/sha2.c:1264:28: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(context, 0, sizeof(context));
~~~~~~~ ^~~~~~~
lib/bind/isc/../../../contrib/bind9/lib/isc/sha2.c:1295:29: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(context, 0, sizeof(context));
~~~~~~~ ^~~~~~~
lib/bind/isc/../../../contrib/bind9/lib/isc/sha2.c:1334:29: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(context, 0, sizeof(context));
~~~~~~~ ^~~~~~~
lib/bind/isc/../../../contrib/bind9/lib/isc/sha2.c:1373:29: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(context, 0, sizeof(context));
~~~~~~~ ^~~~~~~
lib/bind/isc/../../../contrib/bind9/lib/isc/sha2.c:1412:29: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(context, 0, sizeof(context));
~~~~~~~ ^~~~~~~
--
usr.sbin/bluetooth/sdpd/server.c:76:24: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
memset(srv, 0, sizeof(srv));
~~~ ^~~
--
usr.sbin/bsnmpd/bsnmpd/../../../contrib/bsnmp/snmpd/main.c:2706:36: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to remove the addressof? [-Wsizeof-pointer-memaccess]
memset(&snmpd_usmstats, 0, sizeof(&snmpd_usmstats));
~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~
--
usr.bin/csup/auth.c:257:27: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
memset(secret, 0, sizeof(secret));
~~~~~~ ^~~~~~
--
/data/buildslave/freeb,10001:0sd-clang-amd64/src-freebsd/usr.bin/opiekey/../../contrib/opie/opiekey.c:112:32: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
memset(secret, 0, sizeof(secret));
~~~~~~ ^~~~~~
usr.bin/opiekey/../../contrib/opie/opiekey.c:118:32: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
memset(secret, 0, sizeof(secret));
~~~~~~ ^~~~~~
usr.bin/opiekey/../../contrib/opie/opiekey.c:124:30: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
memset(secret, 0, sizeof(secret));
~~~~~~ ^~~~~~
--
usr.sbin/wpa/wpa_passphrase/../../../contrib/wpa//src/crypto/md5-internal.c:191:30: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess]
os_memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
--
usr.sbin/ypserv/yp_main.c:333:9: warning: argument to 'sizeof' in 'memcpy' call is the same pointer type 'struct sockaddr *' as the source; expected 'struct sockaddr' or an explicit length [-Wsizeof-pointer-memaccess]
sizeof(res->ai_addr));
^~~~~~~~~~~~~~~~~~~~
--
Pawel
More information about the freebsd-current
mailing list