ujail: use PATH_MAX for path related buffers
authorEtienne CHAMPETIER <champetier.etienne@gmail.com>
Fri, 27 Nov 2015 16:27:09 +0000 (16:27 +0000)
committerJohn Crispin <blogic@openwrt.org>
Fri, 27 Nov 2015 16:48:49 +0000 (17:48 +0100)
Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com>
jail/elf.c
jail/jail.c

index 5e22606478d1fedd521b0adfac93e2f4dbcff70d..2acac71ae401fbbdd67da4615a94e4480624a733 100644 (file)
@@ -22,6 +22,7 @@
 #include <libgen.h>
 #include <glob.h>
 #include <elf.h>
+#include <linux/limits.h>
 
 #include <libubox/utils.h>
 
@@ -72,7 +73,7 @@ static void alloc_library(const char *path, const char *name)
 static int elf_open(char **dir, const char *file)
 {
        struct library_path *p;
-       char path[256];
+       char path[PATH_MAX];
        int fd = -1;
 
        *dir = NULL;
@@ -98,7 +99,7 @@ static int elf_open(char **dir, const char *file)
 const char* find_lib(const char *file)
 {
        struct library *l;
-       static char path[256];
+       static char path[PATH_MAX];
        const char *p;
 
        l = avl_find_element(&libraries, file, l, avl);
@@ -313,7 +314,7 @@ err_out:
 void load_ldso_conf(const char *conf)
 {
        FILE* fp = fopen(conf, "r");
-       char line[256];
+       char line[PATH_MAX];
 
        if (!fp) {
                DEBUG("failed to open %s\n", conf);
@@ -323,7 +324,7 @@ void load_ldso_conf(const char *conf)
        while (!feof(fp)) {
                int len;
 
-               if (!fgets(line, 256, fp))
+               if (!fgets(line, sizeof(line), fp))
                        break;
                len = strlen(line);
                if (len < 2)
index e8c8f087d6af6bcdaa290c296b0c8f762aac6a72..90aa4823e8357435b6b2ad082e475e022a1b9062 100644 (file)
@@ -25,6 +25,7 @@
 #include <fcntl.h>
 #include <libgen.h>
 #include <sched.h>
+#include <linux/limits.h>
 
 #include "elf.h"
 #include "capabilities.h"
@@ -93,8 +94,8 @@ static int mount_bind(const char *root, const char *path, const char *name, int
 {
        const char *p = path;
        struct stat s;
-       char old[256];
-       char new[256];
+       char old[PATH_MAX];
+       char new[PATH_MAX];
        int fd;
 
        if (strstr(p, "local"))
@@ -209,8 +210,8 @@ static int build_jail_fs()
 static char** build_envp(const char *seccomp)
 {
        static char *envp[MAX_ENVP];
-       static char preload_var[64];
-       static char seccomp_var[64];
+       static char preload_var[PATH_MAX];
+       static char seccomp_var[PATH_MAX];
        static char debug_var[] = "LD_DEBUG=all";
        const char *preload_lib = find_lib("libpreload-seccomp.so");
        int count = 0;