From 8f9427dd53cc3f5eb9194f1235e6357fab5b476d Mon Sep 17 00:00:00 2001 From: Brian Pugh Date: Sun, 29 Oct 2023 13:50:38 -0700 Subject: [PATCH] Add value-range checks for user-definable macros --- lfs.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lfs.c b/lfs.c index 0827331c..6c517a42 100644 --- a/lfs.c +++ b/lfs.c @@ -8,6 +8,23 @@ #include "lfs.h" #include "lfs_util.h" +// Configuration Sanity Check +#if (LFS_NAME_MAX <= 0) || (LFS_NAME_MAX > 1022) +#error "LFS_NAME_MAX must be in the range (0, 1022]" +#endif + +#if (LFS_FILE_MAX <= 0) || (LFS_FILE_MAX > 4294967296) +#error "LFS_FILE_MAX must be in the range (0, 4294967296]" +#endif + +#if (LFS_FILE_MAX > 2147483647) +#warning "LFS_FILE_MAX>2147483647; lfs_file_seek, lfs_file_size, and lfs_file_tell will not function properly." +#endif + +#if (LFS_ATTR_MAX < 0) || (LFS_ATTR_MAX > 1022) +#error "LFS_ATTR_MAX must be in the range [0, 1022]" +#endif + // some constants used throughout the code #define LFS_BLOCK_NULL ((lfs_block_t)-1)