From 4f42d38e4d0f19f0d096f8b17c09e99833c947a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 18 Jun 2025 20:20:49 +0800 Subject: [PATCH] GPU (FreeBSD): fix mem leaks --- src/detection/gpu/gpu_bsd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/detection/gpu/gpu_bsd.c b/src/detection/gpu/gpu_bsd.c index d2e000fd7..e88c03b78 100644 --- a/src/detection/gpu/gpu_bsd.c +++ b/src/detection/gpu/gpu_bsd.c @@ -45,9 +45,12 @@ static const char* detectByDrm(const FFGPUOptions* options, FFlist* gpus) { FF_LIBRARY_LOAD(libdrm, "dlopen libdrm" FF_LIBRARY_EXTENSION " failed", "libdrm" FF_LIBRARY_EXTENSION, 2) FF_LIBRARY_LOAD_SYMBOL_MESSAGE(libdrm, drmGetDevices) + FF_LIBRARY_LOAD_SYMBOL_MESSAGE(libdrm, drmFreeDevices) drmDevicePtr devices[64]; int nDevices = ffdrmGetDevices(devices, ARRAY_SIZE(devices)); + if (nDevices < 0) + return "drmGetDevices() failed"; for (int iDev = 0; iDev < nDevices; ++iDev) { @@ -136,6 +139,8 @@ static const char* detectByDrm(const FFGPUOptions* options, FFlist* gpus) fillGPUTypeGeneric(gpu); } + ffdrmFreeDevices(devices, nDevices); + return NULL; } #endif