BUF_strndup: tidy
authorEmilia Kasper <emilia@openssl.org>
Thu, 17 Sep 2015 11:27:05 +0000 (13:27 +0200)
committerEmilia Kasper <emilia@openssl.org>
Tue, 22 Sep 2015 18:04:01 +0000 (20:04 +0200)
Fix comment, add another overflow check, tidy style

Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit de8883e11befde31d9b6cfbbd1fc017c365e0bbf)

crypto/buffer/buf_str.c
crypto/buffer/buffer.h

index 61024cf5ed08f5b1e4e88131f518edb559f4cb68..fa0d608e76bbb218fc0812eb01da8db69f340613 100644 (file)
@@ -73,7 +73,7 @@ size_t BUF_strnlen(const char *str, size_t maxlen)
 char *BUF_strdup(const char *str)
 {
     if (str == NULL)
-        return (NULL);
+        return NULL;
     return BUF_strndup(str, strlen(str));
 }
 
@@ -82,17 +82,17 @@ char *BUF_strndup(const char *str, size_t siz)
     char *ret;
 
     if (str == NULL)
-        return (NULL);
+        return NULL;
 
     siz = BUF_strnlen(str, siz);
 
     if (siz >= INT_MAX)
-        return (NULL);
+        return NULL;
 
     ret = OPENSSL_malloc(siz + 1);
     if (ret == NULL) {
         BUFerr(BUF_F_BUF_STRNDUP, ERR_R_MALLOC_FAILURE);
-        return (NULL);
+        return NULL;
     }
 
     memcpy(ret, str, siz);
@@ -105,13 +105,13 @@ void *BUF_memdup(const void *data, size_t siz)
 {
     void *ret;
 
-    if (data == NULL)
-        return (NULL);
+    if (data == NULL || siz >= INT_MAX)
+        return NULL;
 
     ret = OPENSSL_malloc(siz);
     if (ret == NULL) {
         BUFerr(BUF_F_BUF_MEMDUP, ERR_R_MALLOC_FAILURE);
-        return (NULL);
+        return NULL;
     }
     return memcpy(ret, data, siz);
 }
index a05cee091f9595b2a52513f1540e0d93d736b2b7..efd240a5f91e25360aab3d83b5aa01509bb29f00 100644 (file)
@@ -88,8 +88,8 @@ size_t BUF_strnlen(const char *str, size_t maxlen);
 char *BUF_strdup(const char *str);
 
 /*
- * Returns a pointer to a new string which is a duplicate of the string |str|,
- * but guarantees to never read past the first |siz| bytes of |str|.
+ * Like strndup, but in addition, explicitly guarantees to never read past the
+ * first |siz| bytes of |str|.
  */
 char *BUF_strndup(const char *str, size_t siz);