瀏覽代碼

Restricted LFS_FILE_MAX to signed 32-bits, <2^31, <=2147483647

I think realistically no one is using this. It's already only partially
supported and untested.

Worst case, if someone does depend on this we can always revert.
Christopher Haster 1 年之前
父節點
當前提交
6691718b18
共有 2 個文件被更改,包括 4 次插入6 次删除
  1. 2 2
      lfs.c
  2. 2 4
      lfs.h

+ 2 - 2
lfs.c

@@ -4112,8 +4112,8 @@ static int lfs_rawremoveattr(lfs_t *lfs, const char *path, uint8_t type) {
 #error "Invalid LFS_NAME_MAX, must be <= 1022"
 #error "Invalid LFS_NAME_MAX, must be <= 1022"
 #endif
 #endif
 
 
-#if LFS_FILE_MAX > 4294967295
-#error "Invalid LFS_FILE_MAX, must be <= 4294967295"
+#if LFS_FILE_MAX > 2147483647
+#error "Invalid LFS_FILE_MAX, must be <= 2147483647"
 #endif
 #endif
 
 
 #if LFS_ATTR_MAX > 1022
 #if LFS_ATTR_MAX > 1022

+ 2 - 4
lfs.h

@@ -52,10 +52,8 @@ typedef uint32_t lfs_block_t;
 #endif
 #endif
 
 
 // Maximum size of a file in bytes, may be redefined to limit to support other
 // Maximum size of a file in bytes, may be redefined to limit to support other
-// drivers. Limited on disk to <= 4294967295. However, above 2147483647 the
-// functions lfs_file_seek, lfs_file_size, and lfs_file_tell will return
-// incorrect values due to using signed integers. Stored in superblock and
-// must be respected by other littlefs drivers.
+// drivers. Limited on disk to <= 2147483647. Stored in superblock and must be
+// respected by other littlefs drivers.
 #ifndef LFS_FILE_MAX
 #ifndef LFS_FILE_MAX
 #define LFS_FILE_MAX 2147483647
 #define LFS_FILE_MAX 2147483647
 #endif
 #endif