criu/plugins
Radostin Stoyanov a3eddf5012
plugin/amdgpu: fix resource leaks in drm restore error paths
The exit label in amdgpu_plugin_drm_restore_file() returns
immediately when ret < 0 without freeing the dmabufs array or
deinitializing the amdgpu device handle. Move cleanup before the
error check so resources are always released.

Replace xzalloc() with xmalloc() and memset(0xff) for the dmabufs
array because zero is a valid fd number and would cause the cleanup
loop to close fd 0 (stdin) for unpopulated entries. Initializing
to KFD_INVALID_FD (0xffffffff) lets the exit block tell which fds
were actually opened. Guard amdgpu_device_deinitialize() behind a
dev_initialized flag to avoid calling it when initialization failed,
and close dmabuf_fd when drmPrimeFDToHandle() fails. To prevent
double-closing fds that restore_bo_contents_drm() already closed,
only run the close loop when the BO content restore was not reached.

Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
2026-07-21 13:40:19 +02:00
..
amdgpu plugin/amdgpu: fix resource leaks in drm restore error paths 2026-07-21 13:40:19 +02:00
cuda amdgpu: use fseeko with large-file support instead of fseeko64 2026-07-21 13:40:17 +02:00