The branch stable/13 has been updated by delphij:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=5d02b30ebd8837f7bed0a38d1ceb09635fc59538

commit 5d02b30ebd8837f7bed0a38d1ceb09635fc59538
Author:     Xin LI <delp...@freebsd.org>
AuthorDate: 2021-03-30 22:21:37 +0000
Commit:     Xin LI <delp...@freebsd.org>
CommitDate: 2021-04-13 07:38:34 +0000

    usr.sbin/services_mkdb: plug memory leak when line was blank.
    
    Reviewed by:    bapt
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D29370
    
    (cherry picked from commit 18f3c5fe9207fbd19360b8ddb23ba10a5ad3df68)
---
 usr.sbin/services_mkdb/uniq.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/usr.sbin/services_mkdb/uniq.c b/usr.sbin/services_mkdb/uniq.c
index 74984468cbb5..43e66b95979d 100644
--- a/usr.sbin/services_mkdb/uniq.c
+++ b/usr.sbin/services_mkdb/uniq.c
@@ -119,12 +119,13 @@ comp(const char *origline, char **compline, size_t *len)
        for (p = (const unsigned char *)origline; l && *p && isspace(*p);
            p++, l--)
                continue;
+       if (*p == '\0' || l == 0)
+               return 0;
+
        if ((cline = malloc(l + 1)) == NULL)
                err(1, "Cannot allocate %zu bytes", l + 1);
        (void)memcpy(cline, p, l);
        cline[l] = '\0';
-       if (*cline == '\0')
-               return 0;
 
        complen = 0;
        hasalnum = 0;
@@ -154,6 +155,11 @@ comp(const char *origline, char **compline, size_t *len)
                --complen;
        }
        *q = '\0';
+       if (!hasalnum) {
+               free(cline);
+               cline = NULL;
+               complen = 0;
+       }
        *compline = cline;
        *len = complen;
        return hasalnum;
_______________________________________________
dev-commits-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "dev-commits-src-all-unsubscr...@freebsd.org"

Reply via email to