summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c b/src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c
index 07eca990d04..22e1c936ac5 100644
--- a/src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c
+++ b/src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c
@@ -252,18 +252,18 @@ kms_sw_displaytarget_add_from_prime(struct kms_sw_winsys *kms_sw, int fd,
if (!kms_sw_dt)
return NULL;
+ off_t lseek_ret = lseek(fd, 0, SEEK_END);
+ if (lseek_ret == -1) {
+ FREE(kms_sw_dt);
+ return NULL;
+ }
+ kms_sw_dt->size = lseek_ret;
kms_sw_dt->ref_count = 1;
kms_sw_dt->handle = handle;
- kms_sw_dt->size = lseek(fd, 0, SEEK_END);
kms_sw_dt->width = width;
kms_sw_dt->height = height;
kms_sw_dt->stride = stride;
- if (kms_sw_dt->size == (off_t)-1) {
- FREE(kms_sw_dt);
- return NULL;
- }
-
lseek(fd, 0, SEEK_SET);
list_add(&kms_sw_dt->link, &kms_sw->bo_list);