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:09:42 +0000 (20:09 +0200)
Fix comment, add another overflow check, tidy style

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

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

index da1fea9c6767835b46eda8ed2cbf41292760a176..233af246e4c5225a41592178ab43d89a20869889 100644 (file)
@@ -64,7 +64,7 @@
 char *BUF_strdup(const char *str)
 {
     if (str == NULL)
-        return (NULL);
+        return NULL;
     return BUF_strndup(str, strlen(str));
 }
 
@@ -73,15 +73,15 @@ char *BUF_strndup(const char *str, size_t siz)
     char *ret;
 
     if (str == NULL)
-        return (NULL);
+        return NULL;
 
     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);
@@ -94,13 +94,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 0958b454beef98b0c0ada276048785388320b8ef..89183adb4a8e1e28fd3b33b7c1d3ee59d7b2d7fa 100644 (file)
@@ -87,8 +87,8 @@ int BUF_MEM_grow_clean(BUF_MEM *str, size_t len);
 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);