summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Wei <weichen302@icloud.com>2015-02-17 22:07:35 +0000
committerSimon Kelley <simon@thekelleys.org.uk>2015-02-17 22:07:35 +0000
commit28b879ac47b872af6e8c5e86d76806c69338434d (patch)
tree572be89cf895db04a5e3b971e30ab2cec32c39f5
parentcaeea190f12efd20139f694aac4942d1ac00019f (diff)
downloaddnsmasq-28b879ac47b872af6e8c5e86d76806c69338434d.tar.gz
Fix trivial memory leaks to quieten valgrind.
-rw-r--r--src/dnsmasq.c2
-rw-r--r--src/option.c11
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)