From 6485fbd25ffdd3aab3451a4e1fcd9f28faa4a940 Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Sun, 18 Dec 2011 19:52:31 +0400 Subject: [PATCH] parasite: Make max size for path being PATH_MAX Signed-off-by: Cyrill Gorcunov Acked-by: Pavel Emelianov --- include/parasite.h | 9 ++++++--- parasite.c | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/parasite.h b/include/parasite.h index e376950b2..67b61b1b0 100644 --- a/include/parasite.h +++ b/include/parasite.h @@ -1,6 +1,9 @@ #ifndef CR_PARASITE_H_ #define CR_PARASITE_H_ +#include +#include + #include "compiler.h" #include "syscall.h" #include "image.h" @@ -8,7 +11,7 @@ #define __parasite_head __used __section(.parasite.head.text) #define PARASITE_STACK_SIZE 2048 -#define PARASITE_ARG_SIZE 256 +#define PARASITE_ARG_SIZE 8196 #define PARASITE_BRK_SIZE 32768 #define PARASITE_MAX_SIZE (64 << 10) @@ -60,14 +63,14 @@ typedef struct { unsigned long fd; unsigned long open_mode; unsigned long open_flags; - char open_path[256]; + char open_path[PATH_MAX]; } parasite_args_cmd_dumppages_t; typedef struct { parasite_status_t status; unsigned long open_mode; unsigned long open_flags; - char open_path[256]; + char open_path[PATH_MAX]; } parasite_args_cmd_dumpsigacts_t; /* diff --git a/parasite.c b/parasite.c index 11e406bdd..ad1d4646c 100644 --- a/parasite.c +++ b/parasite.c @@ -280,6 +280,9 @@ static int __used parasite_service(unsigned long cmd, void *args, void *brk) { brk_init(brk); + BUILD_BUG_ON(sizeof(parasite_args_cmd_dumppages_t) > PARASITE_ARG_SIZE); + BUILD_BUG_ON(sizeof(parasite_args_cmd_dumpsigacts_t) > PARASITE_ARG_SIZE); + switch (cmd) { case PARASITE_CMD_KILLME: sys_close(0);