Re: [PATCH v2] x86/xen: Add some null pointer checking to smp.c

From: Markus Elfring
Date: Wed Jan 17 2024 - 05:41:29 EST


> kasprintf() returns a pointer to dynamically allocated memory
> which can be NULL upon failure. Ensure the allocation was successful
> by checking the pointer validity.

> +++ b/arch/x86/xen/smp.c
> @@ -61,10 +61,14 @@ void xen_smp_intr_free(unsigned int cpu)
>
> int xen_smp_intr_init(unsigned int cpu)
> {
> - int rc;
> + int rc = 0;

I find the indication of a successful function execution sufficient by
the statement “return 0;” at the end.
How do you think about to omit such an extra variable initialisation?


> char *resched_name, *callfunc_name, *debug_name;
>
> resched_name = kasprintf(GFP_KERNEL, "resched%d", cpu);
> + if (!resched_name) {
> + rc = -ENOMEM;
> + goto fail;
> + }
> per_cpu(xen_resched_irq, cpu).name = resched_name;
> rc = bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR,
> cpu,

You propose to apply the same error code in four if branches.
I suggest to avoid the specification of duplicate assignment statements
for this purpose.
How do you think about to use another label like “e_nomem”?

Regards,
Markus