X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=libiberty%2Fstrdup.c;fp=libiberty%2Fstrdup.c;h=78c2093b61a3d05c758c9c14814ef38eb468633b;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=49233ba7aac99603030a43264b5e7ea8b08149d3;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libiberty/strdup.c b/libiberty/strdup.c index 49233ba7..78c2093b 100644 --- a/libiberty/strdup.c +++ b/libiberty/strdup.c @@ -9,13 +9,19 @@ Returns a pointer to a copy of @var{s} in memory obtained from */ +#include +#include + +extern size_t strlen (const char*); +extern PTR malloc (size_t); +extern PTR memcpy (PTR, const PTR, size_t); + char * -strdup(s) - char *s; +strdup(const char *s) { - char *result = (char*)malloc(strlen(s) + 1); - if (result == (char*)0) - return (char*)0; - strcpy(result, s); - return result; + size_t len = strlen (s) + 1; + char *result = (char*) malloc (len); + if (result == (char*) 0) + return (char*) 0; + return (char*) memcpy (result, s, len); }