summaryrefslogtreecommitdiff
path: root/libarchive/archive_read_support_filter_uu.c
diff options
context:
space:
mode:
authorJoerg Sonnenberger <joerg@bec.de>2016-12-06 15:09:41 +0100
committerJoerg Sonnenberger <joerg@bec.de>2016-12-06 15:09:41 +0100
commit5c99da254449ff5e0373a5e1a7f8f97d9db2fecc (patch)
tree53582523a60d51c049e3b15b786390d7e72cb798 /libarchive/archive_read_support_filter_uu.c
parent4fab664f66ea507225587417a3d896440436d894 (diff)
parente291f7eca537910a51f5cbb86b03033946e63350 (diff)
downloadlibarchive-5c99da254449ff5e0373a5e1a7f8f97d9db2fecc.tar.gz
Merge branch 'master' of github.com:libarchive/libarchive
Diffstat (limited to 'libarchive/archive_read_support_filter_uu.c')
-rw-r--r--libarchive/archive_read_support_filter_uu.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libarchive/archive_read_support_filter_uu.c b/libarchive/archive_read_support_filter_uu.c
index 335d15d5..64129799 100644
--- a/libarchive/archive_read_support_filter_uu.c
+++ b/libarchive/archive_read_support_filter_uu.c
@@ -495,6 +495,13 @@ read_more:
}
llen = len;
if ((nl == 0) && (uudecode->state != ST_UUEND)) {
+ if (total == 0 && ravail <= 0) {
+ /* There is nothing more to read, fail */
+ archive_set_error(&self->archive->archive,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Missing format data");
+ return (ARCHIVE_FATAL);
+ }
/*
* Save remaining data which does not contain
* NL('\n','\r').
@@ -551,7 +558,7 @@ read_more:
"Insufficient compressed data");
return (ARCHIVE_FATAL);
}
- /* Get length of undecoded bytes of curent line. */
+ /* Get length of undecoded bytes of current line. */
l = UUDECODE(*b++);
body--;
if (l > body) {