From: Paul Eggert Date: Sat, 3 Aug 2024 22:45:53 +0000 (-0700) Subject: wordsplit_get_words need not fail X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5182462cf1755ebc3d1d589c0cced37ad92ca528;p=thirdparty%2Ftar.git wordsplit_get_words need not fail * lib/wordsplit.c (wordsplit_get_words): Do not fail merely because realloc fails. Return void, since failure is no longer possible. --- diff --git a/lib/wordsplit.c b/lib/wordsplit.c index d6b33af8..48243f21 100644 --- a/lib/wordsplit.c +++ b/lib/wordsplit.c @@ -2524,22 +2524,18 @@ wordsplit_free (struct wordsplit *ws) wordsplit_free_envbuf (ws); } -int +void wordsplit_get_words (struct wordsplit *ws, idx_t *wordc, char ***wordv) { /* Tell the memory manager that ws->ws_wordv can be shrunk. */ char **p = realloc (ws->ws_wordv, (ws->ws_wordc + 1) * sizeof (ws->ws_wordv[0])); - if (!p) - return -1; - *wordv = p; + *wordv = p ? p : ws->ws_wordv; *wordc = ws->ws_wordc; ws->ws_wordv = NULL; ws->ws_wordc = 0; ws->ws_wordn = 0; - - return 0; } static char const *const wordsplit_errstr[] = { diff --git a/lib/wordsplit.h b/lib/wordsplit.h index 4640d34c..b10c7b82 100644 --- a/lib/wordsplit.h +++ b/lib/wordsplit.h @@ -249,7 +249,7 @@ int wordsplit_len (const char *s, idx_t len, wordsplit_t *ws, unsigned flags); void wordsplit_free (wordsplit_t *ws); void wordsplit_free_words (wordsplit_t *ws); void wordsplit_free_envbuf (wordsplit_t *ws); -int wordsplit_get_words (wordsplit_t *ws, idx_t *wordc, char ***wordv); +void wordsplit_get_words (wordsplit_t *ws, idx_t *wordc, char ***wordv); int wordsplit_append (wordsplit_t *wsp, int argc, char **argv);