anv: Check that in_fence fd is valid before closing it.
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 18 Aug 2017 19:04:55 +0000 (12:04 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Tue, 22 Aug 2017 18:56:38 +0000 (11:56 -0700)
Probably harmless, but will overwrite errno with a failure status
code.  Reported by coverity.

CID 1416600: Argument cannot be negative (NEGATIVE_RETURNS)
Fixes: 5c4e4932e02 (anv: Implement support for exporting semaphores as FENCE_FD)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/intel/vulkan/anv_batch_chain.c

index 26b5375903b07dabe07d34c2994569a7797492d6..1e7455f71e1f27fc9da96c29afb2e63ecedb0958 100644 (file)
@@ -1571,7 +1571,8 @@ anv_cmd_buffer_execbuf(struct anv_device *device,
    result = anv_device_execbuf(device, &execbuf.execbuf, execbuf.bos);
 
    /* Execbuf does not consume the in_fence.  It's our job to close it. */
-   close(in_fence);
+   if (in_fence != -1)
+      close(in_fence);
 
    for (uint32_t i = 0; i < num_in_semaphores; i++) {
       ANV_FROM_HANDLE(anv_semaphore, semaphore, in_semaphores[i]);