• S
    selinux: fix kernel BUG on prlimit(..., NULL, NULL) · 84e6885e
    Stephen Smalley 提交于
    commit 79bcf325e6b32b3c ("prlimit,security,selinux: add a security hook
    for prlimit") introduced a security hook for prlimit() and implemented it
    for SELinux.  However, if prlimit() is called with NULL arguments for both
    the new limit and the old limit, then the hook is called with 0 for the
    read/write flags, since the prlimit() will neither read nor write the
    process' limits.  This would in turn lead to calling avc_has_perm() with 0
    for the requested permissions, which triggers a BUG_ON() in
    avc_has_perm_noaudit() since the kernel should never be invoking
    avc_has_perm() with no permissions.  Fix this in the SELinux hook by
    returning immediately if the flags are 0.  Arguably prlimit64() itself
    ought to return immediately if both old_rlim and new_rlim are NULL since
    it is effectively a no-op in that case.
    
    Reported by the lkp-robot based on trinity testing.
    Signed-off-by: NStephen Smalley <sds@tycho.nsa.gov>
    Acked-by: NPaul Moore <paul@paul-moore.com>
    Signed-off-by: NJames Morris <james.l.morris@oracle.com>
    84e6885e
hooks.c 163.9 KB