commit 24f5de6560f31a67bfdf5ddec367e70ecfa9e440
Author: Tim Kientzle <kientzle@acm.org>
Date:   Fri Feb 6 22:07:16 2015 -0800

    Set a proper error message if we hit end-of-file when
    trying to read a cpio header.
    
    Suggested by Issue #395, although the actual problem there
    seems to have been the same as Issue #394.

diff --git a/libarchive/archive_read_support_format_cpio.c b/libarchive/archive_read_support_format_cpio.c
index e7b3d0c..c2ca85b 100644
--- libarchive/archive_read_support_format_cpio.c
+++ libarchive/archive_read_support_format_cpio.c
@@ -866,8 +866,11 @@ header_bin_le(struct archive_read *a, struct cpio *cpio,
 
 	/* Read fixed-size portion of header. */
 	h = __archive_read_ahead(a, bin_header_size, NULL);
-	if (h == NULL)
+	if (h == NULL) {
+	    archive_set_error(&a->archive, 0,
+		"End of file trying to read next cpio header");
 	    return (ARCHIVE_FATAL);
+	}
 
 	/* Parse out binary fields. */
 	header = (const unsigned char *)h;
@@ -902,8 +905,11 @@ header_bin_be(struct archive_read *a, struct cpio *cpio,
 
 	/* Read fixed-size portion of header. */
 	h = __archive_read_ahead(a, bin_header_size, NULL);
-	if (h == NULL)
+	if (h == NULL) {
+	    archive_set_error(&a->archive, 0,
+		"End of file trying to read next cpio header");
 	    return (ARCHIVE_FATAL);
+	}
 
 	/* Parse out binary fields. */
 	header = (const unsigned char *)h;
