procd: initd: fix path allocation in early_insmod
authorNathan Hintz <nlhintz@hotmail.com>
Fri, 29 Dec 2017 04:48:26 +0000 (04:48 +0000)
committerJohn Crispin <john@phrozen.org>
Fri, 29 Dec 2017 23:12:16 +0000 (00:12 +0100)
Noticed that /tmp was not being created on /dev/zram0.  This was on
ixp4xx (nslu2) using GCC 6.3 and musl.

The allocation should be using the length of the passed string
(module path), not the size of the pointer to the string.

Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
initd/zram.c

index 0e78195..da1795a 100644 (file)
@@ -60,7 +60,7 @@ early_insmod(char *module)
                struct utsname ver;
 
                uname(&ver);
                struct utsname ver;
 
                uname(&ver);
-               path = alloca(sizeof(module) + strlen(ver.release) + 1);
+               path = alloca(strlen(module) + strlen(ver.release) + 1);
                sprintf(path, module, ver.release);
                modprobe[1] = path;
                execvp(modprobe[0], modprobe);
                sprintf(path, module, ver.release);
                modprobe[1] = path;
                execvp(modprobe[0], modprobe);