]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Fix memset calls in APR sha2 implementation
authorTravis Cross <tc@traviscross.com>
Sun, 24 Jun 2012 08:05:25 +0000 (08:05 +0000)
committerTravis Cross <tc@traviscross.com>
Sun, 24 Jun 2012 08:05:25 +0000 (08:05 +0000)
The implementation clears the context / state data from memory when it
is finished with it.  Prior to this commit, however, it was actually
only clearing the first 4 bytes on x86 or 8 bytes on x86_64.

clang warns:

  warning: argument to 'sizeof' in 'memset' call is the same
  expression as the destination; did you mean to dereference it?
      [-Wsizeof-pointer-memaccess]

libs/apr/random/unix/sha2.c

index 7f55dac959b88f26ae42925408f70e4d298986ab..169afd5a78f8a1e5beb40c8b16da559a3bffe189 100644 (file)
@@ -557,7 +557,7 @@ void apr__SHA256_Final(sha2_byte digest[], SHA256_CTX* context) {
         }
 
         /* Clean up state data: */
-        MEMSET_BZERO(context, sizeof(context));
+        MEMSET_BZERO(context, sizeof(*context));
         usedspace = 0;
 }
 
@@ -578,7 +578,7 @@ char *apr__SHA256_End(SHA256_CTX* context, char buffer[]) {
                 }
                 *buffer = (char)0;
         } else {
-                MEMSET_BZERO(context, sizeof(context));
+                MEMSET_BZERO(context, sizeof(*context));
         }
         MEMSET_BZERO(digest, SHA256_DIGEST_LENGTH);
         return buffer;
@@ -889,7 +889,7 @@ void apr__SHA512_Final(sha2_byte digest[], SHA512_CTX* context) {
         }
 
         /* Zero out state data */
-        MEMSET_BZERO(context, sizeof(context));
+        MEMSET_BZERO(context, sizeof(*context));
 }
 
 char *apr__SHA512_End(SHA512_CTX* context, char buffer[]) {
@@ -909,7 +909,7 @@ char *apr__SHA512_End(SHA512_CTX* context, char buffer[]) {
                 }
                 *buffer = (char)0;
         } else {
-                MEMSET_BZERO(context, sizeof(context));
+                MEMSET_BZERO(context, sizeof(*context));
         }
         MEMSET_BZERO(digest, SHA512_DIGEST_LENGTH);
         return buffer;
@@ -964,7 +964,7 @@ void apr__SHA384_Final(sha2_byte digest[], SHA384_CTX* context) {
         }
 
         /* Zero out state data */
-        MEMSET_BZERO(context, sizeof(context));
+        MEMSET_BZERO(context, sizeof(*context));
 }
 
 char *apr__SHA384_End(SHA384_CTX* context, char buffer[]) {
@@ -984,7 +984,7 @@ char *apr__SHA384_End(SHA384_CTX* context, char buffer[]) {
                 }
                 *buffer = (char)0;
         } else {
-                MEMSET_BZERO(context, sizeof(context));
+                MEMSET_BZERO(context, sizeof(*context));
         }
         MEMSET_BZERO(digest, SHA384_DIGEST_LENGTH);
         return buffer;