Commit cc7ca838 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Introduce a "replace()" function to replace a malloc'ed string.


git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1796 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent ce79d8eb
......@@ -65,6 +65,18 @@ struct parspec {
static struct params master;
/* XXX: Far too generic to live here ? */
static void
replace(char **p, const char *q)
{
AN(*q);
if (*p != NULL)
free(*p);
*p = strdup(q);
AN(*p);
}
/*--------------------------------------------------------------------*/
static void
......@@ -156,21 +168,14 @@ tweak_user(struct cli *cli, struct parspec *par, const char *arg)
cli_result(cli, CLIS_PARAM);
return;
}
if (master.user)
free(master.user);
master.user = strdup(pw->pw_name);
AN(master.user);
replace(&master.user, pw->pw_name);
master.uid = pw->pw_uid;
/* set group to user's primary group */
if (master.group)
free(master.group);
if ((gr = getgrgid(pw->pw_gid)) != NULL &&
(gr = getgrnam(gr->gr_name)) != NULL &&
gr->gr_gid == pw->pw_gid) {
master.group = strdup(gr->gr_name);
AN(master.group);
}
gr->gr_gid == pw->pw_gid)
replace(&master.group, gr->gr_name);
master.gid = pw->pw_gid;
} else if (master.user) {
cli_out(cli, "%s (%d)", master.user, (int)master.uid);
......@@ -193,10 +198,7 @@ tweak_group(struct cli *cli, struct parspec *par, const char *arg)
cli_result(cli, CLIS_PARAM);
return;
}
if (master.group)
free(master.group);
master.group = strdup(gr->gr_name);
AN(master.group);
replace(&master.group, gr->gr_name);
master.gid = gr->gr_gid;
} else if (master.group) {
cli_out(cli, "%s (%d)", master.group, (int)master.gid);
......@@ -428,9 +430,7 @@ tweak_listen_address(struct cli *cli, struct parspec *par, const char *arg)
return;
}
free(master.listen_address);
master.listen_address = strdup(arg);
AN(master.listen_address);
replace(&master.listen_address, arg);
clean_listen_sock_head(&heritage.socks);
heritage.nsocks = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment