aboutsummaryrefslogtreecommitdiff
path: root/src/start-stop-daemon.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/start-stop-daemon.c')
-rw-r--r--src/start-stop-daemon.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/start-stop-daemon.c b/src/start-stop-daemon.c
index 551bad58..31752fb5 100644
--- a/src/start-stop-daemon.c
+++ b/src/start-stop-daemon.c
@@ -916,6 +916,7 @@ int start_stop_daemon (int argc, char **argv)
char *token;
char *np;
int l;
+ int t;
p += 5;
while ((token = strsep (&p, ":"))) {
@@ -923,15 +924,17 @@ int start_stop_daemon (int argc, char **argv)
strcmp (token, RC_LIBDIR "/sbin") == 0)
continue;
+ t = strlen (token);
if (newpath) {
l = strlen (newpath);
- newpath = xrealloc (newpath, sizeof (char) *
- (l + strlen (token) + 2));
+ newpath = xrealloc (newpath, sizeof (char) * (l + t + 2));
np = newpath + l;
*np++ = ':';
memcpy (np, token, sizeof (char) * strlen (token));
+ np += t;
+ *np = '\0';
} else {
- l = strlen ("PATH=") + strlen (token) + 1;
+ l = strlen ("PATH=") + t + 1;
newpath = xmalloc (sizeof (char) * l);
snprintf (newpath, l, "PATH=%s", token);
}