Blame SOURCES/0136-dd-don-t-try-to-close-not-opened-dir-fd.patch

4b6aa8
From 1d6bd3cb4b06c8075ade1807f383667db670f2d1 Mon Sep 17 00:00:00 2001
4b6aa8
From: Jakub Filak <jfilak@redhat.com>
4b6aa8
Date: Tue, 5 May 2015 16:21:36 +0200
4b6aa8
Subject: [LIBREPORT PATCH] dd: don't try to close not opened dir fd
4b6aa8
4b6aa8
dd_do_open() checks if dd_fd is not negative but if it is negative the
4b6aa8
function calls dd_close() which passes dd_fd to close() in any case.
4b6aa8
4b6aa8
This commit adds a check to dd_close() which ensures that the function
4b6aa8
does not try to close negative dd_fd.
4b6aa8
4b6aa8
Uncovered by coverity.
4b6aa8
4b6aa8
Signed-off-by: Jakub Filak <jfilak@redhat.com>
4b6aa8
---
4b6aa8
 src/lib/dump_dir.c | 5 ++++-
4b6aa8
 1 file changed, 4 insertions(+), 1 deletion(-)
4b6aa8
4b6aa8
diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c
4b6aa8
index 04caa06..d9b8603 100644
4b6aa8
--- a/src/lib/dump_dir.c
4b6aa8
+++ b/src/lib/dump_dir.c
4b6aa8
@@ -397,7 +397,10 @@ void dd_close(struct dump_dir *dd)
4b6aa8
         return;
4b6aa8
 
4b6aa8
     dd_unlock(dd);
4b6aa8
-    close(dd->dd_fd);
4b6aa8
+
4b6aa8
+    if (dd->dd_fd >= 0)
4b6aa8
+        close(dd->dd_fd);
4b6aa8
+
4b6aa8
     if (dd->next_dir)
4b6aa8
     {
4b6aa8
         closedir(dd->next_dir);
4b6aa8
-- 
4b6aa8
1.8.3.1
4b6aa8