git: 9front

Download patch

ref: 770e1318f281287fb043ad46250a8fb1caea19ca
parent: 8b3f4d8a37dce7944e0fb5ca716ad6eadbe7d7d8
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri May 15 03:53:22 EDT 2015

gunzip: the extra length field (XLEN) is two bytes instead of one

example file:
https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R50f.tgz

--- a/sys/src/cmd/gzip/gunzip.c
+++ b/sys/src/cmd/gzip/gunzip.c
@@ -236,9 +236,12 @@
 	/* OS type */
 	get1(bin);
 
-	if(flag & GZFEXTRA)
-		for(i=get1(bin); i>0; i--)
+	if(flag & GZFEXTRA){
+		i = get1(bin);
+		i |= get1(bin)<<8;
+		for(; i>0; i--)
 			get1(bin);
+	}
 
 	/* name */
 	if(flag & GZFNAME){
--