Skip to content
  • Li Zefan's avatar
    Btrfs: avoid possible use-after-free in clear_extent_bit() · cdc6a395
    Li Zefan authored
    
    
    clear_extent_bit()
    {
        next_node = rb_next(&state->rb_node);
        ...
        clear_state_bit(state);  <-- this may free next_node
        if (next_node) {
            state = rb_entry(next_node);
            ...
        }
    }
    
    clear_state_bit() calls merge_state() which may free the next node
    of the passing extent_state, so clear_extent_bit() may end up
    referencing freed memory.
    
    Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
    cdc6a395