Explorar o código

Merge pull request #584 from colin-foster-in-advantage/block_size_mount_fail

Fail mount when the block size changes
Christopher Haster %!s(int64=3) %!d(string=hai) anos
pai
achega
f40b854ab5
Modificáronse 1 ficheiros con 14 adicións e 0 borrados
  1. 14 0
      lfs.c

+ 14 - 0
lfs.c

@@ -3769,6 +3769,20 @@ static int lfs_rawmount(lfs_t *lfs, const struct lfs_config *cfg) {
 
                 lfs->attr_max = superblock.attr_max;
             }
+
+            if (superblock.block_count != lfs->cfg->block_count) {
+                LFS_ERROR("Invalid block count (%"PRIu32" != %"PRIu32")",
+                        superblock.block_count, lfs->cfg->block_count);
+                err = LFS_ERR_INVAL;
+                goto cleanup;
+            }
+
+            if (superblock.block_size != lfs->cfg->block_size) {
+                LFS_ERROR("Invalid block size (%"PRIu32" != %"PRIu32")",
+                        superblock.block_count, lfs->cfg->block_count);
+                err = LFS_ERR_INVAL;
+                goto cleanup;
+            }
         }
 
         // has gstate?