From: Michihiro NAKAJIMA Date: Tue, 30 Oct 2012 18:22:42 +0000 (+0900) Subject: Fix a segmentation fault when files for assertionEqualFile do not exist. X-Git-Tag: v3.1.0~40^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d6c3d50a963b339e3fc22a215a4df351a2d64cad;p=thirdparty%2Flibarchive.git Fix a segmentation fault when files for assertionEqualFile do not exist. --- diff --git a/cpio/test/main.c b/cpio/test/main.c index c123b3080..26511fe9a 100644 --- a/cpio/test/main.c +++ b/cpio/test/main.c @@ -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); diff --git a/libarchive/test/main.c b/libarchive/test/main.c index c7471474c..bb9650490 100644 --- a/libarchive/test/main.c +++ b/libarchive/test/main.c @@ -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); diff --git a/tar/test/main.c b/tar/test/main.c index f700f192c..2835901db 100644 --- a/tar/test/main.c +++ b/tar/test/main.c @@ -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);