• Roberto Sassu's avatar
    ima: Fix memory leak in __ima_inode_hash() · 8c1d6a05
    Roberto Sassu authored
    Commit f3cc6b25 ("ima: always measure and audit files in policy") lets
    measurement or audit happen even if the file digest cannot be calculated.
    
    As a result, iint->ima_hash could have been allocated despite
    ima_collect_measurement() returning an error.
    
    Since ima_hash belongs to a temporary inode metadata structure, declared
    at the beginning of __ima_inode_hash(), just add a kfree() call if
    ima_collect_measurement() returns an error different from -ENOMEM (in that
    case, ima_hash should not have been allocated).
    
    Cc: stable@vger.kernel.org
    Fixes: 280fe836 ("ima: Always return a file measurement in ima_file_hash()")
    Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
    Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
    8c1d6a05
ima_main.c 30.7 KB