]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Fix a segmentation fault when files for assertionEqualFile do not exist.
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Tue, 30 Oct 2012 18:22:42 +0000 (03:22 +0900)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Tue, 30 Oct 2012 18:22:42 +0000 (03:22 +0900)
cpio/test/main.c
libarchive/test/main.c
tar/test/main.c

index c123b3080656e4d0bb00a7cd748c412867521574..26511fe9a90f9d7e6524247425ae82b49c2225f7 100644 (file)
@@ -841,6 +841,11 @@ assertion_equal_file(const char *filename, int line, const char *fn1, const char
 
        f1 = fopen(fn1, "rb");
        f2 = fopen(fn2, "rb");
+       if (f1 == NULL || f2 == NULL) {
+               if (f1) fclose(f1);
+               if (f2) fclose(f2);
+               return (0);
+       }
        for (;;) {
                n1 = fread(buff1, 1, sizeof(buff1), f1);
                n2 = fread(buff2, 1, sizeof(buff2), f2);
index c7471474c902f626ce3ff002b1d7cdccd628759c..bb965049086724715652c6d60f90589d70356279 100644 (file)
@@ -839,6 +839,11 @@ assertion_equal_file(const char *filename, int line, const char *fn1, const char
 
        f1 = fopen(fn1, "rb");
        f2 = fopen(fn2, "rb");
+       if (f1 == NULL || f2 == NULL) {
+               if (f1) fclose(f1);
+               if (f2) fclose(f2);
+               return (0);
+       }
        for (;;) {
                n1 = fread(buff1, 1, sizeof(buff1), f1);
                n2 = fread(buff2, 1, sizeof(buff2), f2);
index f700f192cd06546c7a2ad62766a4e8e74bb3a53b..2835901db6def716504336758c1df317a63980f0 100644 (file)
@@ -841,6 +841,11 @@ assertion_equal_file(const char *filename, int line, const char *fn1, const char
 
        f1 = fopen(fn1, "rb");
        f2 = fopen(fn2, "rb");
+       if (f1 == NULL || f2 == NULL) {
+               if (f1) fclose(f1);
+               if (f2) fclose(f2);
+               return (0);
+       }
        for (;;) {
                n1 = fread(buff1, 1, sizeof(buff1), f1);
                n2 = fread(buff2, 1, sizeof(buff2), f2);