Jeff King wrote: > --- a/git-compat-util.h > +++ b/git-compat-util.h > @@ -675,6 +675,11 @@ extern char *xgetcwd(void); > > #define REALLOC_ARRAY(x, alloc) (x) = xrealloc((x), (alloc) * sizeof(*(x))) > > +static inline char *xstrdup_or_null(const char *str) > +{ > + return str ? xstrdup(str) : NULL; > +} Would it make sense for xstrdup to always include the NULL check, avoiding the need for the more verbose xstrdup_or_null? Jonathan diff --git i/wrapper.c w/wrapper.c index 007ec0d..5a835e8 100644 --- i/wrapper.c +++ w/wrapper.c @@ -40,7 +40,11 @@ try_to_free_t set_try_to_free_routine(try_to_free_t routine) char *xstrdup(const char *str) { - char *ret = strdup(str); + char *ret; + + if (!str) + return NULL; + ret = strdup(str); if (!ret) { try_to_free_routine(strlen(str) + 1); ret = strdup(str); @@ -125,7 +129,11 @@ void *xmemdupz(const void *data, size_t len) char *xstrndup(const char *str, size_t len) { - char *p = memchr(str, '\0', len); + char *p; + + if (!str) + return NULL; + p = memchr(str, '\0', len); return xmemdupz(str, p ? p - str : len); } -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html