diff --git a/start-stop-daemon/.md5sum b/start-stop-daemon/.md5sum
index 8717e575..76fcb21d 100644
--- a/start-stop-daemon/.md5sum
+++ b/start-stop-daemon/.md5sum
@@ -1,4 +1,4 @@
-fc4fc999c1d7fadae2c0fd4068b56bf1 crux-patch.diff
+d69ea09c844389f3e4d0cda696d0d968 crux-patch.diff
707efd334e4ba1d5f65f366a3c03c794 makefile
c021c418059b2afcb2f501927239beca start-stop-daemon.8
-4e7b036a171570419127363228133bbc start-stop-daemon.c
+61ba9ca1003221e1af632714c1cfbd11 start-stop-daemon.c
diff --git a/start-stop-daemon/Pkgfile b/start-stop-daemon/Pkgfile
index 4f82e981..bff7f576 100644
--- a/start-stop-daemon/Pkgfile
+++ b/start-stop-daemon/Pkgfile
@@ -3,7 +3,7 @@
# Maintainer: CRUX System Team, core-ports at crux dot nu
name=start-stop-daemon
-version=20150915
+version=20150921
release=1
source=(start-stop-daemon.c start-stop-daemon.8 crux-patch.diff makefile)
diff --git a/start-stop-daemon/crux-patch.diff b/start-stop-daemon/crux-patch.diff
index a2d26bbc..7c0498b6 100644
--- a/start-stop-daemon/crux-patch.diff
+++ b/start-stop-daemon/crux-patch.diff
@@ -7,12 +7,12 @@ index deae6c6..28d2de8 100644
.\" along with this program. If not, see .
.
-.TH start\-stop\-daemon 8 "2014-03-26" "Debian Project" "dpkg utilities"
-+.TH start\-stop\-daemon 8 "2015-09-15" "CRUX 3.2" "core services"
++.TH start\-stop\-daemon 8 "2015-09-21" "CRUX 3.2" "core services"
.SH NAME
start\-stop\-daemon \- start and stop system daemon programs
.
diff --git a/start-stop-daemon/start-stop-daemon.c b/start-stop-daemon/start-stop-daemon.c
-index 6d74feb..e94e482 100644
+index c844f2e..67cd043 100644
--- a/start-stop-daemon/start-stop-daemon.c
+++ b/start-stop-daemon/start-stop-daemon.c
@@ -20,10 +20,34 @@
@@ -25,7 +25,7 @@ index 6d74feb..e94e482 100644
#include
+#else
-+# define VERSION "20150915"
++# define VERSION "20150921"
+# define CRUX "CRUX 3.2"
+
+# define HAVE_SYS_PARAM_H
@@ -61,25 +61,7 @@ index 6d74feb..e94e482 100644
#define IOPRIO_CLASS_SHIFT 13
#define IOPRIO_PRIO_VALUE(class, prio) (((class) << IOPRIO_CLASS_SHIFT) | (prio))
#define IO_SCHED_PRIO_MIN 0
-@@ -297,17 +325,6 @@ xmalloc(int size)
- }
-
- static char *
--xstrdup(const char *str)
--{
-- char *new_str;
--
-- new_str = strdup(str);
-- if (new_str)
-- return new_str;
-- fatal("strdup(%s) failed", str);
--}
--
--static char *
- xstrndup(const char *str, size_t n)
- {
- char *new_str;
-@@ -321,8 +338,7 @@ xstrndup(const char *str, size_t n)
+@@ -310,8 +338,7 @@ xstrndup(const char *str, size_t n)
static void
timespec_gettime(struct timespec *ts)
{
@@ -89,7 +71,7 @@ index 6d74feb..e94e482 100644
if (clock_gettime(CLOCK_MONOTONIC, ts) < 0)
fatal("clock_gettime failed");
#else
-@@ -626,9 +642,9 @@ usage(void)
+@@ -615,9 +642,9 @@ usage(void)
static void
do_version(void)
{
diff --git a/start-stop-daemon/start-stop-daemon.c b/start-stop-daemon/start-stop-daemon.c
index 6d74febc..c844f2e9 100644
--- a/start-stop-daemon/start-stop-daemon.c
+++ b/start-stop-daemon/start-stop-daemon.c
@@ -296,17 +296,6 @@ xmalloc(int size)
fatal("malloc(%d) failed", size);
}
-static char *
-xstrdup(const char *str)
-{
- char *new_str;
-
- new_str = strdup(str);
- if (new_str)
- return new_str;
- fatal("strdup(%s) failed", str);
-}
-
static char *
xstrndup(const char *str, size_t n)
{
@@ -1049,10 +1038,11 @@ parse_options(int argc, char * const *argv)
* argument later. */
changeuser_len = strcspn(optarg, ":");
changeuser = xstrndup(optarg, changeuser_len);
- if (optarg[changeuser_len] == ':' &&
- optarg[changeuser_len + 1] == '\0')
- fatal("missing group name");
- changegroup = optarg + changeuser_len + 1;
+ if (optarg[changeuser_len] == ':') {
+ if (optarg[changeuser_len + 1] == '\0')
+ fatal("missing group name");
+ changegroup = optarg + changeuser_len + 1;
+ }
break;
case 'g': /* --group | */
changegroup = optarg;