summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main.c9
-rw-r--r--src/main.h2
2 files changed, 9 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index 8088b3c..a4b805b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -215,6 +215,9 @@ process_cmdline (int argc, char **argv, struct config_s *conf)
break;
case 'c':
+ if (conf->config_file != NULL) {
+ safefree (conf->config_file);
+ }
conf->config_file = safestrdup (optarg);
if (!conf->config_file) {
fprintf (stderr,
@@ -305,7 +308,11 @@ static void initialize_config_defaults (struct config_s *conf)
{
memset (conf, 0, sizeof(*conf));
- conf->config_file = SYSCONFDIR "/tinyproxy.conf";
+ conf->config_file = safestrdup (SYSCONFDIR "/tinyproxy.conf");
+ if (!conf->config_file) {
+ fprintf (stderr, PACKAGE ": Could not allocate memory.\n");
+ exit (EX_SOFTWARE);
+ }
conf->godaemon = TRUE;
/*
* Make sure the HTML error pages array is NULL to begin with.
diff --git a/src/main.h b/src/main.h
index 6fc41b2..ed5ea8e 100644
--- a/src/main.h
+++ b/src/main.h
@@ -35,7 +35,7 @@
*/
struct config_s {
char *logf_name;
- const char *config_file;
+ char *config_file;
unsigned int syslog; /* boolean */
int port;
char *stathost;