From d651155b61a6f9ca3fe53e60718f3b43e04b23c8 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Wed, 28 Nov 2007 13:40:15 +0000 Subject: Sanitize our PATH a bit better, and terminate it correctly in start-stop-daemon. --- src/start-stop-daemon.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') 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); } -- cgit v1.2.3