diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2016-12-06 15:09:41 +0100 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2016-12-06 15:09:41 +0100 |
commit | 5c99da254449ff5e0373a5e1a7f8f97d9db2fecc (patch) | |
tree | 53582523a60d51c049e3b15b786390d7e72cb798 /libarchive/archive_read_support_filter_uu.c | |
parent | 4fab664f66ea507225587417a3d896440436d894 (diff) | |
parent | e291f7eca537910a51f5cbb86b03033946e63350 (diff) | |
download | libarchive-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.c | 9 |
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) { |