Fix resource leak on error path
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 15 May 2013 14:44:35 +0000 (16:44 +0200)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 15 May 2013 14:44:35 +0000 (16:44 +0200)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
converter/babeltrace.c

index 10083516823dff0f39445e345fbd510566282564..d5a7040cdb33b4bc4085a2c31cb8efcd8a3b8c6a 100644 (file)
@@ -451,15 +451,20 @@ static int traverse_trace_dir(const char *fpath, const struct stat *sb,
                /* No meta data, just return */
                return 0;
        } else {
+               int err_close = 0;
+
                closeret = close(metafd);
                if (closeret < 0) {
                        perror("close");
-                       return -1;      /* failure */
+                       err_close = 1;
                }
                closeret = close(dirfd);
                if (closeret < 0) {
                        perror("close");
-                       return -1;      /* failure */
+                       err_close = 1;
+               }
+               if (err_close) {
+                       return -1;
                }
 
                /* Add path to the global list */
This page took 0.02603 seconds and 4 git commands to generate.