Hi, > -----Original Message----- > From: David Marchand <david.march...@redhat.com> > Sent: Tuesday, August 1, 2023 6:19 PM > To: dev@dpdk.org > Cc: sta...@dpdk.org; Matan Azrad <ma...@nvidia.com>; Slava Ovsiienko > <viachesl...@nvidia.com>; Ori Kam <or...@nvidia.com>; Suanming Mou > <suanmi...@nvidia.com>; Bing Zhao <bi...@nvidia.com> > Subject: [PATCH] net/mlx5: fix leak in sysfs port name translation > > getline() may allocate a buffer even though it returns -1: > """ > If *lineptr is set to NULL before the call, then getline() will allocate a > buffer for > storing the line. This buffer should be freed by the user program even if > getline() failed. > """ > > This leak has been observed on a RHEL8 system with two CX5 PF devices (no > VFs). > > ASan reports: > ==8899==ERROR: LeakSanitizer: detected memory leaks > > Direct leak of 120 byte(s) in 1 object(s) allocated from: > #0 0x7fe58576aba8 in __interceptor_malloc > (/lib64/libasan.so.5+0xefba8) > #1 0x7fe583e866b2 in __getdelim (/lib64/libc.so.6+0x886b2) > #2 0x327bd23 in mlx5_sysfs_switch_info > ../drivers/net/mlx5/linux/mlx5_ethdev_os.c:1084 > #3 0x3271f86 in mlx5_os_pci_probe_pf > ../drivers/net/mlx5/linux/mlx5_os.c:2282 > #4 0x3273c83 in mlx5_os_pci_probe > ../drivers/net/mlx5/linux/mlx5_os.c:2497 > #5 0x327475f in mlx5_os_net_probe > ../drivers/net/mlx5/linux/mlx5_os.c:2578 > #6 0xc6eac7 in drivers_probe > ../drivers/common/mlx5/mlx5_common.c:937 > #7 0xc6f150 in mlx5_common_dev_probe > ../drivers/common/mlx5/mlx5_common.c:1027 > #8 0xc8ef80 in mlx5_common_pci_probe > ../drivers/common/mlx5/mlx5_common_pci.c:168 > #9 0xc21b67 in rte_pci_probe_one_driver > ../drivers/bus/pci/pci_common.c:312 > #10 0xc2224c in pci_probe_all_drivers > ../drivers/bus/pci/pci_common.c:396 > #11 0xc222f4 in pci_probe ../drivers/bus/pci/pci_common.c:423 > #12 0xb71fff in rte_bus_probe ../lib/eal/common/eal_common_bus.c:78 > #13 0xbe6888 in rte_eal_init ../lib/eal/linux/eal.c:1300 > #14 0x5ec717 in main ../app/test-pmd/testpmd.c:4515 > #15 0x7fe583e38d84 in __libc_start_main (/lib64/libc.so.6+0x3ad84) > > As far as why getline() errors, strace gives a hint: > 8516 openat(AT_FDCWD, "/sys/class/net/enp130s0f0/phys_port_name", > O_RDONLY) = 34 > 8516 fstat(34, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0 > 8516 read(34, 0x621000098900, 4096) = -1 EOPNOTSUPP (Operation > not supported) > > Fixes: f8a226ed65fa ("net/mlx5: fix sysfs port name translation") > Cc: sta...@dpdk.org > > Signed-off-by: David Marchand <david.march...@redhat.com>
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh