diff options
author | jon <jon@FreeBSD.org> | 2007-05-17 03:33:23 +0000 |
---|---|---|
committer | jon <jon@FreeBSD.org> | 2007-05-17 03:33:23 +0000 |
commit | 3127d2bb31e30b1d390602807027788a016c08bb (patch) | |
tree | b0c4fb0726002bf66b08be9c762953bfb83a5e2f /lib | |
parent | fe7fa59a06ef70816d352f48c70269dca62f96e2 (diff) | |
download | FreeBSD-src-3127d2bb31e30b1d390602807027788a016c08bb.zip FreeBSD-src-3127d2bb31e30b1d390602807027788a016c08bb.tar.gz |
fix memory leak from reading nsswitch.conf
MFC after: 1 week
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/net/nsdispatch.c | 2 | ||||
-rw-r--r-- | lib/libc/net/nsparser.y | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/libc/net/nsdispatch.c b/lib/libc/net/nsdispatch.c index 0e3c419..ad3f208 100644 --- a/lib/libc/net/nsdispatch.c +++ b/lib/libc/net/nsdispatch.c @@ -412,6 +412,8 @@ static void ns_dbt_free(ns_dbt *dbt) { ns_src_free(&dbt->srclist, dbt->srclistsize); + if (dbt->name) + free((void *)dbt->name); } diff --git a/lib/libc/net/nsparser.y b/lib/libc/net/nsparser.y index 1f0fff1..730458a 100644 --- a/lib/libc/net/nsparser.y +++ b/lib/libc/net/nsparser.y @@ -82,6 +82,9 @@ Lines Entry : NL | Database ':' NL + { + free((char*)curdbt.name); + } | Database ':' Srclist NL { _nsdbtput(&curdbt); @@ -163,6 +166,7 @@ _nsaddsrctomap(elem) syslog(LOG_ERR, "NSSWITCH(nsparser): %s line %d: 'compat' used with sources, other than 'cache'", _PATH_NS_CONF, lineno); + free((void*)elem); return; } } @@ -171,6 +175,7 @@ _nsaddsrctomap(elem) syslog(LOG_ERR, "NSSWITCH(nsparser): %s line %d: duplicate source '%s'", _PATH_NS_CONF, lineno, elem); + free((void*)elem); return; } } |