[PATCH] procfs: Fix a locking bug in a vmcore_add_device_dump() error path
Michael S. Tsirkin
mst at redhat.com
Wed Jan 29 23:02:38 PST 2025
On Wed, Jan 29, 2025 at 02:20:03PM -0800, Bart Van Assche wrote:
> Unlock vmcore_mutex when returning -EBUSY.
>
> Cc: David Hildenbrand <david at redhat.com>
> Cc: Andrew Morton <akpm at linux-foundation.org>
> Cc: Michael S. Tsirkin <mst at redhat.com>
> Fixes: 0f3b1c40c652 ("fs/proc/vmcore: disallow vmcore modifications while the vmcore is open")
> Signed-off-by: Bart Van Assche <bvanassche at acm.org>
Acked-by: Michael S. Tsirkin <mst at redhat.com>
> ---
> fs/proc/vmcore.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
> index a00120a3c099..10d01eb09c43 100644
> --- a/fs/proc/vmcore.c
> +++ b/fs/proc/vmcore.c
> @@ -1524,7 +1524,7 @@ int vmcore_add_device_dump(struct vmcoredd_data *data)
> pr_warn_once("Unexpected adding of device dump\n");
> if (vmcore_open) {
> ret = -EBUSY;
> - goto out_err;
> + goto unlock;
> }
>
> list_add_tail(&dump->list, &vmcoredd_list);
> @@ -1532,6 +1532,9 @@ int vmcore_add_device_dump(struct vmcoredd_data *data)
> mutex_unlock(&vmcore_mutex);
> return 0;
>
> +unlock:
> + mutex_unlock(&vmcore_mutex);
> +
> out_err:
> vfree(buf);
> vfree(dump);
More information about the kexec
mailing list