From: Ray Strode Date: Fri, 10 Oct 2014 20:11:01 +0000 (-0400) Subject: main: fix incorrectly sized buffer for /proc/cmdline X-Git-Tag: 0.9.2~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5caf43a2c36d252bdb48cdebabf4b0badffa7987;p=thirdparty%2Fplymouth.git main: fix incorrectly sized buffer for /proc/cmdline We assume /proc/cmdline will be no more than 512 bytes (including NUL). It can actually be 4096 bytes (excluding NUL). This commit makes sure we allocate enough space for it and its NUL. --- diff --git a/src/main.c b/src/main.c index dce2f9fd..d78ee133 100644 --- a/src/main.c +++ b/src/main.c @@ -57,7 +57,7 @@ #include "ply-progress.h" #ifndef PLY_MAX_COMMAND_LINE_SIZE -#define PLY_MAX_COMMAND_LINE_SIZE 512 +#define PLY_MAX_COMMAND_LINE_SIZE 4097 #endif #define BOOT_DURATION_FILE PLYMOUTH_TIME_DIRECTORY "/boot-duration" @@ -1703,7 +1703,7 @@ get_kernel_command_line (state_t *state) } ply_trace ("reading kernel command line"); - if (read (fd, state->kernel_command_line, sizeof(state->kernel_command_line)) < 0) { + if (read (fd, state->kernel_command_line, sizeof(state->kernel_command_line) - 1) < 0) { ply_trace ("couldn't read it: %m"); close (fd); return false;