https://bugs.dpdk.org/show_bug.cgi?id=1276

            Bug ID: 1276
           Summary: platform bus use after free
           Product: DPDK
           Version: 23.07
          Hardware: ARM
                OS: Linux
            Status: UNCONFIRMED
          Severity: critical
          Priority: Normal
         Component: ethdev
          Assignee: dev@dpdk.org
          Reporter: 869119...@qq.com
  Target Milestone: ---

After I register a platform driver, a segment fault occurs when the program
call rte_eal_cleanup.
The code that causes this problem is at drivers/bus/platform/platform.c:615, as
follows:
static int
platform_bus_cleanup(void)
{
        struct rte_platform_device *pdev, *tmp;

        RTE_TAILQ_FOREACH_SAFE(pdev, &platform_bus.device_list, next, tmp) {
                platform_bus_unplug(&pdev->device);
                TAILQ_REMOVE(&platform_bus.device_list, pdev, next);
        }

        return 0;
}
To fix this, modify it as follows:
static int
platform_bus_cleanup(void)
{
        struct rte_platform_device *pdev, *tmp;

        RTE_TAILQ_FOREACH_SAFE(pdev, &platform_bus.device_list, next, tmp) {
                TAILQ_REMOVE(&platform_bus.device_list, pdev, next);
                platform_bus_unplug(&pdev->device);
        }

        return 0;
}
I'm lazy, that's all.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to