diff options
author | Fedor Indutny <fedor@indutny.com> | 2016-02-04 16:34:47 -0500 |
---|---|---|
committer | Fedor Indutny <fedor@indutny.com> | 2016-02-08 14:44:19 -0500 |
commit | 1258b0166dc6e68c2592be3410e54d5cb19bc04b (patch) | |
tree | 5f21d4a0c2789b78c231e6b2c9fbd6ac29ddac4c /deps/cares/src/ares_strdup.c | |
parent | 106c6cfe98db21cc62d339056710491550f69565 (diff) | |
download | android-node-v8-1258b0166dc6e68c2592be3410e54d5cb19bc04b.tar.gz android-node-v8-1258b0166dc6e68c2592be3410e54d5cb19bc04b.tar.bz2 android-node-v8-1258b0166dc6e68c2592be3410e54d5cb19bc04b.zip |
deps: sync with upstream bagder/c-ares@2bae2d5
PR-URL: https://github.com/nodejs/node/pull/5090
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Diffstat (limited to 'deps/cares/src/ares_strdup.c')
-rw-r--r-- | deps/cares/src/ares_strdup.c | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/deps/cares/src/ares_strdup.c b/deps/cares/src/ares_strdup.c index 18043274e9..0c3dcffc30 100644 --- a/deps/cares/src/ares_strdup.c +++ b/deps/cares/src/ares_strdup.c @@ -17,26 +17,33 @@ #include "ares_setup.h" #include "ares_strdup.h" +#include "ares.h" +#include "ares_private.h" -#ifndef HAVE_STRDUP char *ares_strdup(const char *s1) { - size_t sz; - char * s2; +#ifdef HAVE_STRDUP + if (ares_malloc == malloc) + return strdup(s1); + else +#endif + { + size_t sz; + char * s2; - if(s1) { - sz = strlen(s1); - if(sz < (size_t)-1) { - sz++; - if(sz < ((size_t)-1) / sizeof(char)) { - s2 = malloc(sz * sizeof(char)); - if(s2) { - memcpy(s2, s1, sz * sizeof(char)); - return s2; + if(s1) { + sz = strlen(s1); + if(sz < (size_t)-1) { + sz++; + if(sz < ((size_t)-1) / sizeof(char)) { + s2 = ares_malloc(sz * sizeof(char)); + if(s2) { + memcpy(s2, s1, sz * sizeof(char)); + return s2; + } } } } + return (char *)NULL; } - return (char *)NULL; } -#endif |