[LEDE-DEV] [PATCH] procd: initd: fix path allocation in early_insmod

Rosen Penev rosenp at gmail.com
Fri Dec 29 15:53:25 PST 2017


On Thu, Dec 28, 2017 at 8:48 PM, Nathan Hintz <nlhintz at hotmail.com> wrote:
> 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.
>
clang-analyzer catches this as well:

/home/mangix/devstuff/procd/initd/zram.c:63:17: warning: The code
calls sizeof() on a pointer type. This can produce an unexpected
result
                path = alloca(sizeof(module) + strlen(ver.release) + 1);
                              ^     ~~~~~~~~
/usr/include/alloca.h:35:41: note: expanded from macro 'alloca'
# define alloca(size)   __builtin_alloca (size)
                                          ^~~~
1 warning generated.

> Signed-off-by: Nathan Hintz <nlhintz at hotmail.com>
> ---
>  initd/zram.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/initd/zram.c b/initd/zram.c
> index 0e78195..da1795a 100644
> --- a/initd/zram.c
> +++ b/initd/zram.c
> @@ -60,7 +60,7 @@ early_insmod(char *module)
>                 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);
> --
> 2.13.6
>
>
> _______________________________________________
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev



More information about the Lede-dev mailing list