[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