On 2021/03/06 22:03, Jia-Ju Bai wrote: > When mutex_lock_interruptible() fails, the error return code of > tomoyo_update_domain() is not properly assigned. > To fix this bug, error is assigned with the return value of > mutex_lock_interruptible(), and then error is checked.
Thanks for a patch, but this patch is wrong. Since the variable "error" is initialized as int error = is_delete ? -ENOENT : -ENOMEM; at the beginning of this function, unconditionally overwriting this variable with the return code of mutex_lock_interruptible() breaks if (error && !is_delete) { } block of this function. And the caller does not check if the return code is -EINTR instead of -ENOENT or -ENOMEM.