BUF_strndup: tidy
Fix comment, add another overflow check, tidy style
Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit de8883e11b)
			
			
This commit is contained in:
		@@ -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);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user