Also, free file->dir when freeing file.

Signed-off-by: Scott Wood <[EMAIL PROTECTED]>
---
 srcpos.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/srcpos.c b/srcpos.c
index 7340c33..7a0c47e 100644
--- a/srcpos.c
+++ b/srcpos.c
@@ -86,6 +86,16 @@ struct dtc_file *dtc_open_file(const char *fname,
                return file;
        }
 
+       if (fname[0] == '/') {
+               file->file = fopen(fname, "r");
+
+               if (!file->file)
+                       goto out;
+
+               file->name = strdup(fname);
+               return file;
+       }
+
        if (!search)
                search = &default_search;
 
@@ -100,6 +110,7 @@ struct dtc_file *dtc_open_file(const char *fname,
        }
 
 out:
+       free((void *)file->dir);
        free(file);
        return NULL;
 }
@@ -109,5 +120,6 @@ void dtc_close_file(struct dtc_file *file)
        if (fclose(file->file))
                die("Error closing \"%s\": %s\n", file->name, strerror(errno));
 
+       free((void *)file->dir);
        free(file);
 }
-- 
1.5.3

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to