]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
usb: xhci: Fix double free on failure
authorRichard Habeeb <richard.habeeb@gmail.com>
Mon, 24 Jul 2023 19:45:25 +0000 (15:45 -0400)
committerMarek Vasut <marex@denx.de>
Thu, 27 Jul 2023 01:59:38 +0000 (03:59 +0200)
drivers/core/device.c will call `device_free()` after xhci_register
already frees the private device data. This can cause a crash later
during the boot process, observed on aarch64 RPi4b as a synchronous
exception. All callers of xhci_register use priv_auto, so this won't
lead to memory leaks.

Signed-off-by: Richard Habeeb <richard.habeeb@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/usb/host/xhci.c

index 9e33c5d85596ce358d80dbba3f752109589a7006..5cacf0769ec78a60f2b7a309f296b1c50f327263 100644 (file)
@@ -1418,7 +1418,6 @@ int xhci_register(struct udevice *dev, struct xhci_hccr *hccr,
 
        return 0;
 err:
-       free(ctrl);
        debug("%s: failed, ret=%d\n", __func__, ret);
        return ret;
 }