Mesa (master): anv: Check that in_fence fd is valid before closing it.

Francisco Jerez currojerez at kemper.freedesktop.org
Tue Aug 22 19:04:07 UTC 2017


Module: Mesa
Branch: master
Commit: e29ccaac298d04ad4272af2d8b8d7a953c523e28
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e29ccaac298d04ad4272af2d8b8d7a953c523e28

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Fri Aug 18 12:04:55 2017 -0700

anv: Check that in_fence fd is valid before closing it.

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 at intel.com>

---

 src/intel/vulkan/anv_batch_chain.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_batch_chain.c b/src/intel/vulkan/anv_batch_chain.c
index 26b5375903..1e7455f71e 100644
--- a/src/intel/vulkan/anv_batch_chain.c
+++ b/src/intel/vulkan/anv_batch_chain.c
@@ -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]);




More information about the mesa-commit mailing list