diff options
-rw-r--r-- | crypto/buffer/buf_str.c | 14 | ||||
-rw-r--r-- | include/openssl/buffer.h | 4 |
2 files changed, 9 insertions, 9 deletions
diff --git a/crypto/buffer/buf_str.c b/crypto/buffer/buf_str.c index bca363c28e..1f3e8a4e79 100644 --- a/crypto/buffer/buf_str.c +++ b/crypto/buffer/buf_str.c @@ -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); } diff --git a/include/openssl/buffer.h b/include/openssl/buffer.h index 61cff9ca36..f22ed09713 100644 --- a/include/openssl/buffer.h +++ b/include/openssl/buffer.h @@ -92,8 +92,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); |