• José Bollo's avatar
    SMACK: Fix handling value==NULL in post setxattr · 9598f4c9
    José Bollo authored
    The function `smack_inode_post_setxattr` is called each
    time that a setxattr is done, for any value of name.
    The kernel allow to put value==NULL when size==0
    to set an empty attribute value. The systematic
    call to smk_import_entry was causing the dereference
    of a NULL pointer hence a KERNEL PANIC!
    
    The problem can be produced easily by issuing the
    command `setfattr -n user.data file` under bash prompt
    when SMACK is active.
    
    Moving the call to smk_import_entry as proposed by this
    patch is correcting the behaviour because the function
    smack_inode_post_setxattr is called for the SMACK's
    attributes only if the function smack_inode_setxattr validated
    the value and its size (what will not be the case when size==0).
    
    It also has a benefical effect to not fill the smack hash
    with garbage values coming from any extended attribute
    write.
    
    Change-Id: Iaf0039c2be9bccb6cee11c24a3b44d209101fe47
    Signed-off-by: default avatarJosé Bollo <jose.bollo@open.eurogiciel.org>
    9598f4c9
smack_lsm.c 93.6 KB