3535#include "fetch.h"
3636#include "xbps_api_impl.h"
3737
38+ int HIDDEN
39+ xbps_archive_errno (struct archive * ar )
40+ {
41+ int err = archive_errno (ar );
42+ return err == -1 ? EINVAL : err ;
43+ }
44+
3845char HIDDEN *
3946xbps_archive_get_file (struct archive * ar , struct archive_entry * entry )
4047{
@@ -58,7 +65,7 @@ xbps_archive_get_file(struct archive *ar, struct archive_entry *entry)
5865 for (;;) {
5966 ssize_t rd = archive_read_data (ar , buf + used , len - used );
6067 if (rd == ARCHIVE_FATAL || rd == ARCHIVE_WARN ) {
61- r = - archive_errno (ar );
68+ r = - xbps_archive_errno (ar );
6269 xbps_error_printf (
6370 "failed to read archive entry: %s: %s\n" ,
6471 archive_entry_pathname (entry ),
@@ -117,7 +124,7 @@ xbps_archive_append_buf(struct archive *ar, const void *buf, const size_t buflen
117124
118125 entry = archive_entry_new ();
119126 if (!entry )
120- return - archive_errno (ar );
127+ return - xbps_archive_errno (ar );
121128
122129 archive_entry_set_filetype (entry , AE_IFREG );
123130 archive_entry_set_perm (entry , mode );
@@ -128,15 +135,15 @@ xbps_archive_append_buf(struct archive *ar, const void *buf, const size_t buflen
128135
129136 if (archive_write_header (ar , entry ) != ARCHIVE_OK ) {
130137 archive_entry_free (entry );
131- return - archive_errno (ar );
138+ return - xbps_archive_errno (ar );
132139 }
133140 if (archive_write_data (ar , buf , buflen ) != ARCHIVE_OK ) {
134141 archive_entry_free (entry );
135- return - archive_errno (ar );
142+ return - xbps_archive_errno (ar );
136143 }
137144 if (archive_write_finish_entry (ar ) != ARCHIVE_OK ) {
138145 archive_entry_free (entry );
139- return - archive_errno (ar );
146+ return - xbps_archive_errno (ar );
140147 }
141148 archive_entry_free (entry );
142149
@@ -222,7 +229,7 @@ xbps_archive_read_open(struct archive *ar, const char *filename)
222229{
223230 int r = archive_read_open_filename (ar , filename , 4096 );
224231 if (r == ARCHIVE_FATAL )
225- return - archive_errno (ar );
232+ return - xbps_archive_errno (ar );
226233 return 0 ;
227234}
228235
@@ -248,8 +255,7 @@ xbps_archive_read_open_remote(struct archive *ar, const char *url)
248255 r = archive_read_open (ar , f , fetch_archive_open , fetch_archive_read ,
249256 fetch_archive_close );
250257 if (r == ARCHIVE_FATAL ) {
251- r = - archive_errno (ar );
252- return r ;
258+ return - xbps_archive_errno (ar );
253259 }
254260
255261 return 0 ;
0 commit comments