[Debburn-devel] strange memsets
Frantisek Kluknavsky
fkluknav at redhat.com
Fri Feb 22 13:26:28 UTC 2013
Hi,
upcoming gcc-4.8 warns about weird parameters of several calls to
memset(pointer_to_some_structure, 0, sizeof(pointer)). I looked into the
sources and can not understand the purpose of rewriting sizeof(pointer)
in a structure not containing pointers. Maybe it is a typo. If it is
correct, please, let me know.
Thank you.
Frantisek Kluknavsky
PS: Here are references to the source together with my guess of correct
form:
diff -up wrk/genisoimage/jte.c.wrk wrk/genisoimage/jte.c
--- wrk/genisoimage/jte.c.wrk 2013-02-22 13:24:47.722196877 +0100
+++ wrk/genisoimage/jte.c 2013-02-22 13:31:50.967667591 +0100
@@ -280,7 +280,7 @@ extern int list_file_in_jigdo(char *file
if (!jtemplate_out)
return 0;
- memset(md5, 0, sizeof(md5));
+ memset(md5, 0, sizeof(*md5));
/* Cheaper to check file size first */
if (size < jte_min_size)
diff -up wrk/genisoimage/md5.c.wrk wrk/genisoimage/md5.c
--- wrk/genisoimage/md5.c.wrk 2013-02-22 13:15:18.210866321 +0100
+++ wrk/genisoimage/md5.c 2013-02-22 13:15:29.979935133 +0100
@@ -183,7 +183,7 @@ mk_MD5Final (unsigned char digest[16], s
putu32(ctx->buf[1], digest + 4);
putu32(ctx->buf[2], digest + 8);
putu32(ctx->buf[3], digest + 12);
- memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
+ memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
}
/* The four core functions - F1 is optimized somewhat */
diff -up wrk/libedc/edcspeed.c.wrk wrk/libedc/edcspeed.c
--- wrk/libedc/edcspeed.c.wrk 2013-02-22 10:45:33.353219110 +0100
+++ wrk/libedc/edcspeed.c 2013-02-22 10:46:52.497686387 +0100
@@ -35,7 +35,8 @@ static int encspeed()
secs = 10;
end = 75*1000000 * secs;
- memset(sect, 0, sizeof(sect));
+ //unneccessary, immediately rewritten again
+ //memset(sect, 0, sizeof(sect));
for (i=0; i < 2352; ) {
sect[i++] = 'J';
sect[i++] = 'S';
More information about the Debburn-devel
mailing list