• L
    Btrfs: avoid possible use-after-free in clear_extent_bit() · cdc6a395
    Li Zefan 提交于
    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: NLi Zefan <lizf@cn.fujitsu.com>
    cdc6a395
extent_io.c 120.3 KB