diff options
| -rw-r--r-- | CHANGES | 2 | ||||
| -rw-r--r-- | appl/cmd/tarfs.b | 18 | ||||
| -rw-r--r-- | dis/tarfs.dis | bin | 6128 -> 6160 bytes | |||
| -rw-r--r-- | include/version.h | 2 |
4 files changed, 12 insertions, 10 deletions
@@ -1,3 +1,5 @@ +20090524 + appl/cmd/tarfs.b dis/tarfs.dis - remove accidentally small limit on file size in tar file (issue 172) 20090521 module/vac.m appl/cmd/vacfs.b appl/lib/vac.b [issue 152] (Mecchiel) 20090505 diff --git a/appl/cmd/tarfs.b b/appl/cmd/tarfs.b index 2e0b6473..b0ec5add 100644 --- a/appl/cmd/tarfs.b +++ b/appl/cmd/tarfs.b @@ -329,7 +329,7 @@ readtar(fd: ref Sys->FD): int if(buf[0] == byte 0) break; offset += big Blocksize; - mode := octal(buf[Omode:Ouid]); + mode := int octal(buf[Omode:Ouid]); linkflag := int buf[Olinkflag]; # don't use linkname if((mode & 8r170000) == 8r40000) @@ -352,15 +352,15 @@ readtar(fd: ref Sys->FD): int f.name = f.name[:len f.name-1]; } f.mode = mode; - f.uid = octal(buf[Ouid:Ogid]); - f.gid = octal(buf[Ogid:Osize]); - f.length = big octal(buf[Osize:Omtime]); + f.uid = int octal(buf[Ouid:Ogid]); + f.gid = int octal(buf[Ogid:Osize]); + f.length = octal(buf[Osize:Omtime]); if(f.length < big 0) error(sys->sprint("tar file size is negative: %s", f.name)); if(mode & Sys->DMDIR) f.length = big 0; - f.mtime = octal(buf[Omtime:Ochksum]); - sum := octal(buf[Ochksum:Olinkflag]); + f.mtime = int octal(buf[Omtime:Ochksum]); + sum := int octal(buf[Ochksum:Olinkflag]); if(sum != checksum(buf)) error(sys->sprint("checksum error on %s", f.name)); f.offset = offset; @@ -384,16 +384,16 @@ ascii(b: array of byte): string return string b[0:i]; } -octal(b: array of byte): int +octal(b: array of byte): big { - v := 0; + v := big 0; for(i := 0; i < len b && b[i] == byte ' '; i++) ; for(; i < len b && b[i] != byte 0 && b[i] != byte ' '; i++){ c := int b[i]; if(!(c >= '0' && c <= '7')) error(sys->sprint("bad octal value in tar header: %s (%c)", string b, c)); - v = (v<<3) | (c-'0'); + v = (v<<3) | big (c-'0'); } return v; } diff --git a/dis/tarfs.dis b/dis/tarfs.dis Binary files differindex d1aea076..ea65044a 100644 --- a/dis/tarfs.dis +++ b/dis/tarfs.dis diff --git a/include/version.h b/include/version.h index 53af6fe0..43143948 100644 --- a/include/version.h +++ b/include/version.h @@ -1 +1 @@ -#define VERSION "Fourth Edition (20090521)" +#define VERSION "Fourth Edition (20090524)" |
