From 8f4d34d6c93c63fbd0214eb69a48db7a3efcf6c5 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Tue, 5 Feb 2019 07:00:58 +0100 Subject: [PATCH] lxcmntent: remove stack allocations Signed-off-by: Christian Brauner --- src/include/lxcmntent.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/include/lxcmntent.c b/src/include/lxcmntent.c index 10c10c549..3d527a963 100644 --- a/src/include/lxcmntent.c +++ b/src/include/lxcmntent.c @@ -21,7 +21,7 @@ #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 #endif -#include +#include #include #include #include @@ -160,14 +160,17 @@ FILE *setmntent(const char *file, const char *mode) * I/O functions and "e" to set FD_CLOEXEC. */ size_t modelen = strlen(mode); - char *newmode; + char newmode[256]; - newmode = alloca(modelen + 3); + if (modelen >= (sizeof(newmode) - 3)) { + errno = -EFBIG; + return NULL; + } memcpy(newmode, mode, modelen); memcpy(newmode + modelen, "ce", 3); - return fopen (file, newmode); + return fopen(file, newmode); } /* Close a stream opened with `setmntent'. */ -- 2.47.3