From 0f1d30aa672db47f9b6be185204f64c7b47ae559 Mon Sep 17 00:00:00 2001 From: Leandro Pereira Date: Fri, 18 May 2018 12:17:07 -0700 Subject: [PATCH] lib: posix: Do not redefine PATH_MAX in unistd.h This constant should be defined in limits.h. Define it in limits.h in the minimal libc, and use the definition found in newlib's includes. Values in newlib includes range from 1024 to 4096. The rationale is that all code should use the same value; having buffers specified with different sizes will lead to interoperability and out of bounds array writes. Signed-off-by: Leandro Pereira --- include/posix/unistd.h | 3 --- lib/libc/minimal/include/limits.h | 2 ++ lib/posix/fs.c | 6 +++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/include/posix/unistd.h b/include/posix/unistd.h index 4fd9d4c8d55..aa8040f4dcd 100644 --- a/include/posix/unistd.h +++ b/include/posix/unistd.h @@ -16,9 +16,6 @@ extern "C" { #ifdef CONFIG_POSIX_FS #include -#undef PATH_MAX -#define PATH_MAX 256 - typedef struct fs_dir_t DIR; typedef unsigned int mode_t; diff --git a/lib/libc/minimal/include/limits.h b/lib/libc/minimal/include/limits.h index b9b424c2d6c..d6757dd9bdc 100644 --- a/lib/libc/minimal/include/limits.h +++ b/lib/libc/minimal/include/limits.h @@ -48,6 +48,8 @@ extern "C" { #define ULONG_MAX 0xFFFFFFFFul #define ULLONG_MAX 0xFFFFFFFFFFFFFFFFull +#define PATH_MAX 256 + #ifdef __cplusplus } #endif diff --git a/lib/posix/fs.c b/lib/posix/fs.c index cc90f3cb231..70be3728e0d 100644 --- a/lib/posix/fs.c +++ b/lib/posix/fs.c @@ -4,12 +4,12 @@ * SPDX-License-Identifier: Apache-2.0 */ -#include -#include #include +#include +#include #include #include - +#include union file_desc { struct fs_file_t file;