diff options
-rw-r--r-- | archival/libunarchive/decompress_unzip.c | 8 | ||||
-rw-r--r-- | archival/libunarchive/unzip.c | 8 | ||||
-rw-r--r-- | libbb/unzip.c | 8 |
3 files changed, 24 insertions, 0 deletions
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c index bb32891be..69cc8198b 100644 --- a/archival/libunarchive/decompress_unzip.c +++ b/archival/libunarchive/decompress_unzip.c | |||
@@ -875,6 +875,14 @@ static int inflate(void) | |||
875 | } | 875 | } |
876 | } while (!e); | 876 | } while (!e); |
877 | 877 | ||
878 | /* Undo too much lookahead. The next read will be byte aligned so we | ||
879 | * can discard unused bits in the last meaningful byte. | ||
880 | */ | ||
881 | while (bk >= 8) { | ||
882 | bk -= 8; | ||
883 | ungetc((bb << bk), in_file); | ||
884 | } | ||
885 | |||
878 | /* flush out window */ | 886 | /* flush out window */ |
879 | flush_window(); | 887 | flush_window(); |
880 | 888 | ||
diff --git a/archival/libunarchive/unzip.c b/archival/libunarchive/unzip.c index bb32891be..69cc8198b 100644 --- a/archival/libunarchive/unzip.c +++ b/archival/libunarchive/unzip.c | |||
@@ -875,6 +875,14 @@ static int inflate(void) | |||
875 | } | 875 | } |
876 | } while (!e); | 876 | } while (!e); |
877 | 877 | ||
878 | /* Undo too much lookahead. The next read will be byte aligned so we | ||
879 | * can discard unused bits in the last meaningful byte. | ||
880 | */ | ||
881 | while (bk >= 8) { | ||
882 | bk -= 8; | ||
883 | ungetc((bb << bk), in_file); | ||
884 | } | ||
885 | |||
878 | /* flush out window */ | 886 | /* flush out window */ |
879 | flush_window(); | 887 | flush_window(); |
880 | 888 | ||
diff --git a/libbb/unzip.c b/libbb/unzip.c index bb32891be..69cc8198b 100644 --- a/libbb/unzip.c +++ b/libbb/unzip.c | |||
@@ -875,6 +875,14 @@ static int inflate(void) | |||
875 | } | 875 | } |
876 | } while (!e); | 876 | } while (!e); |
877 | 877 | ||
878 | /* Undo too much lookahead. The next read will be byte aligned so we | ||
879 | * can discard unused bits in the last meaningful byte. | ||
880 | */ | ||
881 | while (bk >= 8) { | ||
882 | bk -= 8; | ||
883 | ungetc((bb << bk), in_file); | ||
884 | } | ||
885 | |||
878 | /* flush out window */ | 886 | /* flush out window */ |
879 | flush_window(); | 887 | flush_window(); |
880 | 888 | ||