From 14e7f92ac37c70e4267e8602a036aa4e08a09447 Mon Sep 17 00:00:00 2001 From: Ralph Corderoy Date: Sun, 10 Sep 2017 18:12:38 +0100 Subject: [PATCH] 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. --- uip/slocal.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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; } /* -- 2.56.0