提交 de8883e1 编写于 作者: E Emilia Kasper

BUF_strndup: tidy

Fix comment, add another overflow check, tidy style
Reviewed-by: NMatt Caswell <matt@openssl.org>
上级 110f7b37
......@@ -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);
}
......
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册