[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