瀏覽代碼

Merge pull request #630 from Johnxjj/dev-johnxjj

add the limit, the cursor cannot be set to a negative number
Christopher Haster 3 年之前
父節點
當前提交
cc025653ed
共有 1 個文件被更改,包括 11 次插入2 次删除
  1. 11 2
      lfs.c

+ 11 - 2
lfs.c

@@ -3076,9 +3076,18 @@ static lfs_soff_t lfs_file_rawseek(lfs_t *lfs, lfs_file_t *file,
     if (whence == LFS_SEEK_SET) {
         npos = off;
     } else if (whence == LFS_SEEK_CUR) {
-        npos = file->pos + off;
+        if ((lfs_soff_t)file->pos + off < 0) {
+            return LFS_ERR_INVAL;
+        } else {
+            npos = file->pos + off;
+        }
     } else if (whence == LFS_SEEK_END) {
-        npos = lfs_file_rawsize(lfs, file) + off;
+        lfs_soff_t res = lfs_file_rawsize(lfs, file) + off;
+        if (res < 0) {
+            return LFS_ERR_INVAL;
+        } else {
+            npos = res;
+        }
     }
 
     if (npos > lfs->file_max) {