Преглед на файлове

st/xa: fd management cleanups

Analogous to previous commit.

Spotted by Coverity (CID 1339866)

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
tags/11.2-branchpoint
Emil Velikov преди 10 години
родител
ревизия
fe71059388
променени са 1 файла, в които са добавени 8 реда и са изтрити 1 реда
  1. 8
    1
      src/gallium/state_trackers/xa/xa_tracker.c

+ 8
- 1
src/gallium/state_trackers/xa/xa_tracker.c Целия файл

@@ -152,11 +152,15 @@ xa_tracker_create(int drm_fd)
struct xa_tracker *xa = calloc(1, sizeof(struct xa_tracker));
enum xa_surface_type stype;
unsigned int num_formats;
int fd = -1;

if (!xa)
return NULL;

if (pipe_loader_drm_probe_fd(&xa->dev, dup(drm_fd)))
if (drm_fd < 0 || (fd = dup(drm_fd)) < 0)
goto out_no_fd;

if (pipe_loader_drm_probe_fd(&xa->dev, fd))
xa->screen = pipe_loader_create_screen(xa->dev);

if (!xa->screen)
@@ -208,6 +212,9 @@ xa_tracker_create(int drm_fd)
out_no_screen:
if (xa->dev)
pipe_loader_release(&xa->dev, 1);
fd = -1;
out_no_fd:
close(fd);
free(xa);
return NULL;
}

Loading…
Отказ
Запис