Browse Source

Fixed memory leak in emubd's out-of-order write emulation

We need to decrement the saved block state on sync, when we reset
out-of-order emulation. Otherwise we leak blocks out the wazoo.
Christopher Haster 1 year ago
parent
commit
7873d811a0
1 changed files with 1 additions and 0 deletions
  1. 1 0
      bd/lfs_emubd.c

+ 1 - 0
bd/lfs_emubd.c

@@ -531,6 +531,7 @@ int lfs_emubd_sync(const struct lfs_config *cfg) {
     // emulate out-of-order writes? reset first write, writes
     // cannot be out-of-order across sync
     if (bd->cfg->powerloss_behavior == LFS_EMUBD_POWERLOSS_OOO) {
+        lfs_emubd_decblock(bd->ooo_data);
         bd->ooo_block = -1;
         bd->ooo_data = NULL;
     }