diff options
Diffstat (limited to 'src/tool_strdup.c')
-rw-r--r-- | src/tool_strdup.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/tool_strdup.c b/src/tool_strdup.c index e6e151bd6..c8e938d16 100644 --- a/src/tool_strdup.c +++ b/src/tool_strdup.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2015, 2017, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -30,18 +30,13 @@ char *strdup(const char *str) if(!str) return (char *)NULL; - len = strlen(str); + len = strlen(str) + 1; - if(len >= ((size_t)-1) / sizeof(char)) - return (char *)NULL; - - newstr = malloc((len + 1)*sizeof(char)); + newstr = malloc(len); if(!newstr) return (char *)NULL; - memcpy(newstr, str, (len + 1)*sizeof(char)); - + memcpy(newstr, str, len); return newstr; - } #endif |