The quilt patch titled Subject: mm/shmem: fix invalid PTR_ERR(NULL) call in shmem_xattr_handler_set() has been removed from the -mm tree. Its filename was mm-shmem-fix-invalid-ptr_errnull-call-in-shmem_xattr_handler_set.patch This patch was dropped because it was nacked ------------------------------------------------------ From: Qasim Ijaz <qasdev00@xxxxxxxxx> Subject: mm/shmem: fix invalid PTR_ERR(NULL) call in shmem_xattr_handler_set() Date: Tue, 28 Jan 2025 23:54:08 +0000 In shmem_xattr_handler_set() if simple_xattr_set() succeeds and the pointer returned is not an error pointer, then old_xattr will be set to NULL in the body of the following if statement: if (!IS_ERR(old_xattr)) Later on shmem_xattr_handler_set() calls: return PTR_ERR(old_xattr); The PTR_ERR macro is used to extract an error code from an error pointer and NULL is not an error pointer, PTR_ERR(NULL) simply results in 0. To improve correctness and readability, refactor the error handling to have an explicit default return value of 0 (success) in "ret". If simple_xattr_set() returns an error pointer, store its error code in "ret". Link: https://lkml.kernel.org/r/20250128235408.11229-1-qasdev00@xxxxxxxxx Signed-off-by: Qasim Ijaz <qasdev00@xxxxxxxxx> Cc: Hugh Dickens <hughd@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/shmem.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- a/mm/shmem.c~mm-shmem-fix-invalid-ptr_errnull-call-in-shmem_xattr_handler_set +++ a/mm/shmem.c @@ -4301,6 +4301,7 @@ static int shmem_xattr_handler_set(const struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb); struct simple_xattr *old_xattr; size_t ispace = 0; + int ret = 0; name = xattr_full_name(handler, name); if (value && sbinfo->max_inodes) { @@ -4316,7 +4317,9 @@ static int shmem_xattr_handler_set(const } old_xattr = simple_xattr_set(&info->xattrs, name, value, size, flags); - if (!IS_ERR(old_xattr)) { + if (IS_ERR(old_xattr)) { + ret = PTR_ERR(old_xattr); + } else { ispace = 0; if (old_xattr && sbinfo->max_inodes) ispace = simple_xattr_space(old_xattr->name, @@ -4326,12 +4329,13 @@ static int shmem_xattr_handler_set(const inode_set_ctime_current(inode); inode_inc_iversion(inode); } + if (ispace) { raw_spin_lock(&sbinfo->stat_lock); sbinfo->free_ispace += ispace; raw_spin_unlock(&sbinfo->stat_lock); } - return PTR_ERR(old_xattr); + return ret; } static const struct xattr_handler shmem_security_xattr_handler = { _ Patches currently in -mm which might be from qasdev00@xxxxxxxxx are