(gcry_strdup): Don't copy the string after a malloc
authorWerner Koch <wk@gnupg.org>
Fri, 14 Nov 2003 11:45:54 +0000 (11:45 +0000)
committerWerner Koch <wk@gnupg.org>
Fri, 14 Nov 2003 11:45:54 +0000 (11:45 +0000)
error.

src/ChangeLog
src/global.c

index 535a9a4..661e3fa 100644 (file)
@@ -1,3 +1,8 @@
+2003-11-14  Werner Koch  <wk@gnupg.org>
+
+       * global.c (gcry_strdup): Don't copy the string after a malloc
+       error.
+
 2003-11-11  Werner Koch  <wk@gnupg.org>
 
        * sexp.c (sexp_sscan): Implemented "%b" format specifier.
index 02a6767..56d8114 100644 (file)
@@ -494,7 +494,8 @@ gcry_calloc_secure (size_t n, size_t m)
   size_t bytes;
   void *p;
 
-  bytes = n * m; /* size_t is unsigned so the behavior on overflow is defined. */
+  bytes = n * m; /* size_t is unsigned so the behavior on overflow is
+                    defined. */
   if (m && bytes / m != n) 
     {
       errno = ENOMEM;
@@ -512,7 +513,8 @@ char *
 gcry_strdup( const char *string )
 {
     void *p = gcry_malloc( strlen(string)+1 );
-    strcpy( p, string );
+    if (p)
+      strcpy (p, string);
     return p;
 }