• Su Hui's avatar
    smb: client: fix possible double free in smb2_set_ea() · 19ebc1e6
    Su Hui authored
    Clang static checker(scan-build) warning:
    fs/smb/client/smb2ops.c:1304:2: Attempt to free released memory.
     1304 |         kfree(ea);
          |         ^~~~~~~~~
    
    There is a double free in such case:
    'ea is initialized to NULL' -> 'first successful memory allocation for
    ea' -> 'something failed, goto sea_exit' -> 'first memory release for ea'
    -> 'goto replay_again' -> 'second goto sea_exit before allocate memory
    for ea' -> 'second memory release for ea resulted in double free'.
    
    Re-initialie 'ea' to NULL near to the replay_again label, it can fix this
    double free problem.
    
    Fixes: 4f1fffa2 ("cifs: commands that are retried should have replay flag set")
    Reviewed-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: default avatarSu Hui <suhui@nfschina.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    19ebc1e6
smb2ops.c 163 KB