From 29010761a5efa416317aab0efcfcf20856ff2fa4 Mon Sep 17 00:00:00 2001 From: atheik <14833674+atheik@users.noreply.github.com> Date: Thu, 21 Apr 2022 22:47:30 +0200 Subject: [PATCH] optget: Improve memory leak fix (re: 333a8ca6) The memory leak only occurred when an \f...\f string was used outside a braces block ('{'...'}' a.k.a. GO...OG). This shows the way to a more correct and elegant fix. Co-authored by: Martijn Dekker --- src/lib/libast/misc/optget.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/lib/libast/misc/optget.c b/src/lib/libast/misc/optget.c index d0c4b07d5..42ddc2e43 100644 --- a/src/lib/libast/misc/optget.c +++ b/src/lib/libast/misc/optget.c @@ -2140,7 +2140,7 @@ textout(Sfio_t* sp, register char* s, char* conform, int conformlen, int style, } } } - else if (!*s) + else if (*s != OG) { if (!(tsp = psp)) break; @@ -2148,8 +2148,6 @@ textout(Sfio_t* sp, register char* s, char* conform, int conformlen, int style, psp = psp->next; free(tsp); } - else if (*s != OG) - break; else { s++; @@ -2157,7 +2155,6 @@ textout(Sfio_t* sp, register char* s, char* conform, int conformlen, int style, break; } } - pop(psp); return s; } s++;