[Dnsmasq-discuss] [PATCH] free used pointers during loading
Chen Wei
weichen302 at icloud.com
Sun Feb 15 11:26:01 GMT 2015
Valgrind reports three leaks. Those unfreed pointers are only used during
loading.
---
src/dnsmasq.c | 2 ++
src/option.c | 11 +++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/dnsmasq.c b/src/dnsmasq.c
index e903a24..e6dabbf 100644
--- a/src/dnsmasq.c
+++ b/src/dnsmasq.c
@@ -627,6 +627,8 @@ int main (int argc, char **argv)
}
#ifdef HAVE_LINUX_NETWORK
+ free(hdr);
+ free(data);
if (option_bool(OPT_DEBUG))
prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
#endif
diff --git a/src/option.c b/src/option.c
index e4b4865..ae0ad00 100644
--- a/src/option.c
+++ b/src/option.c
@@ -4361,7 +4361,7 @@ void read_opts(int argc, char **argv, char *compile_opts)
{
char *buff = opt_malloc(MAXDNAME);
int option, conffile_opt = '7', testmode = 0;
- char *arg, *conffile = CONFFILE;
+ char *arg, *conffile = NULL;
opterr = 0;
@@ -4476,7 +4476,14 @@ void read_opts(int argc, char **argv, char *compile_opts)
}
if (conffile)
- one_file(conffile, conffile_opt);
+ {
+ one_file(conffile, conffile_opt);
+ free(conffile);
+ }
+ else
+ {
+ one_file(CONFFILE, conffile_opt);
+ }
/* port might not be known when the address is parsed - fill in here */
if (daemon->servers)
--
1.7.10.4
More information about the Dnsmasq-discuss
mailing list