From: Ralph Corderoy Date: Sun, 10 Sep 2017 17:12:38 +0000 (+0100) Subject: slocal.c: Alter trim() to return static array, not malloc(3). X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/14e7f92ac37c70e4267e8602a036aa4e08a09447?ds=inline;hp=3736af69c183d472642ed17375b0970f5239e6e5 slocal.c: Alter trim() to return static array, not malloc(3). The callers are immediately passing the return value to printf(3) for "%s". There's only one call per printf(). None of the callers are bothering to free(3) the existing return value. Return the address of trim()'s char array, now static, instead. Leave trim() returning NULL when passed NULL, even though that gives NULL to print(3) for "%s". It, and slocal's other bugs, remain. --- diff --git a/uip/slocal.c b/uip/slocal.c index 723cb27a..fe027ee2 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -1293,7 +1293,7 @@ fputs_error: static char * trim (char *cp) { - char buffer[BUFSIZ*4]; + static char buffer[BUFSIZ * 4]; char *bp, *sp; if (cp == NULL) @@ -1320,8 +1320,7 @@ trim (char *cp) if (isspace((unsigned char) *sp)) *sp = ' '; - /* now return a copy */ - return mh_xstrdup(bp); + return bp; } /*