Skip to content

Commit 7f2631e

Browse files
bank: potential double free
1 parent 822d33d commit 7f2631e

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/flamenco/runtime/fd_bank.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -797,12 +797,12 @@ fd_banks_advance_root( fd_banks_t * banks,
797797
/* Decide if we need to free any CoW fields. We free a CoW member
798798
from its pool if the dirty flag is set unless it is the same
799799
pool that the new root uses. */
800-
#define HAS_COW_1(name) \
801-
if( head->name##_dirty && head->name##_pool_idx!=new_root->name##_pool_idx ) { \
802-
fd_rwlock_write( &banks->name##_pool_lock ); \
803-
fd_bank_##name##_t * name##_pool = fd_banks_get_##name##_pool( banks ); \
804-
fd_bank_##name##_pool_idx_release( name##_pool, head->name##_pool_idx ); \
805-
fd_rwlock_unwrite( &banks->name##_pool_lock ); \
800+
#define HAS_COW_1(name) \
801+
if( head->name##_dirty && head->name##_pool_idx!=new_root->name##_pool_idx && head->flags&FD_BANK_FLAGS_REPLAYABLE ) { \
802+
fd_rwlock_write( &banks->name##_pool_lock ); \
803+
fd_bank_##name##_t * name##_pool = fd_banks_get_##name##_pool( banks ); \
804+
fd_bank_##name##_pool_idx_release( name##_pool, head->name##_pool_idx ); \
805+
fd_rwlock_unwrite( &banks->name##_pool_lock ); \
806806
}
807807
/* Do nothing for these. */
808808
#define HAS_COW_0(name)

0 commit comments

Comments
 (0)