From bd32bb8646459508bb0b0ce54a14bd6fe0e19b75 Mon Sep 17 00:00:00 2001
From: Alejandro del Castillo <alejandro.delcastillo@ni.com>
Date: Thu, 27 Aug 2015 15:52:16 -0500
Subject: [PATCH] opkg_archive: add support for empty compressed files

Regression from 0.2.x: opkg used to support empty Package.gz files.

Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>

Upstream-Status: Accepted
---
 libopkg/opkg_archive.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/libopkg/opkg_archive.c b/libopkg/opkg_archive.c
index be903e4..7e91e48 100644
--- a/libopkg/opkg_archive.c
+++ b/libopkg/opkg_archive.c
@@ -121,6 +121,9 @@ static int copy_to_stream(struct archive *a, FILE * stream)
     int eof;
     size_t len = EXTRACT_BUFFER_LEN;
 
+    if (archive_format(a) == ARCHIVE_FORMAT_EMPTY)
+        return 0;
+
     buffer = xmalloc(len);
 
     while (1) {
@@ -654,6 +657,13 @@ static struct archive *open_compressed_file(const char *filename)
         goto err_cleanup;
     }
 
+    r = archive_read_support_format_empty(ar);
+    if (r != ARCHIVE_OK) {
+        opkg_msg(ERROR, "Empty format not supported: %s\n",
+                 archive_error_string(ar));
+        goto err_cleanup;
+    }
+
     /* Open input file and prepare for reading. */
     r = archive_read_open_filename(ar, filename, EXTRACT_BUFFER_LEN);
     if (r != ARCHIVE_OK) {
@@ -723,6 +733,7 @@ struct opkg_ar *ar_open_compressed_file(const char *filename)
 {
     struct opkg_ar *ar;
     struct archive_entry *entry;
+    int eof;
 
     ar = (struct opkg_ar *)xmalloc(sizeof(struct opkg_ar));
 
@@ -737,8 +748,8 @@ struct opkg_ar *ar_open_compressed_file(const char *filename)
      * header. We skip over this header here so that the caller doesn't need
      * to know about it.
      */
-    entry = read_header(ar->ar, NULL);
-    if (!entry)
+    entry = read_header(ar->ar, &eof);
+    if (!entry && !eof)
         goto err_cleanup;
 
     return ar;
-- 
1.9.1

