summaryrefslogtreecommitdiff
path: root/src/archive.c
diff options
context:
space:
mode:
authorTimo Teras <timo.teras@iki.fi>2009-07-22 11:36:55 +0300
committerTimo Teras <timo.teras@iki.fi>2009-07-22 11:36:55 +0300
commit680a3015114ce0375604a389139831f242769f60 (patch)
treedb337a4afb34fa2f4ad6b619ec9cf06a107dc08a /src/archive.c
parent772e4aa26a2a0b21b667c54a11e05eae183e0915 (diff)
downloadapk-tools-680a3015114ce0375604a389139831f242769f60.tar.gz
apk-tools-680a3015114ce0375604a389139831f242769f60.tar.bz2
apk-tools-680a3015114ce0375604a389139831f242769f60.tar.xz
apk-tools-680a3015114ce0375604a389139831f242769f60.zip
various: installation fixes
- extract everything as .apk-new and overwrite only after data has been checksummed - url construction fixes (to work with simple http servers) - end of gunzip stream fixed - remove oneshot digesting flag for now as it's usage was broken
Diffstat (limited to 'src/archive.c')
-rw-r--r--src/archive.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/archive.c b/src/archive.c
index 26419d4..2cfb3e6 100644
--- a/src/archive.c
+++ b/src/archive.c
@@ -219,9 +219,10 @@ int apk_tar_parse(struct apk_istream *is, apk_archive_entry_parser parser,
/* Read remaining end-of-archive records, to ensure we read all of
* the file. The underlying istream is likely doing checksumming. */
if (r == 512) {
- while ((r = is->read(is, &buf, 512)) == 512)
+ while ((r = is->read(is, &buf, 512)) == 512) {
if (buf.name[0] != 0)
return -1;
+ }
}
/* Check that there was no partial record */