Browse Source

Plan 9 from Bell Labs 2005-06-29

David du Colombier 19 years ago
parent
commit
42b49d6647

+ 9 - 8
dist/replica/_plan9.db

@@ -7352,7 +7352,7 @@ sys/man/1/strip - 664 sys sys 958580250 448
 sys/man/1/sum - 664 sys sys 984772442 1390
 sys/man/1/sum - 664 sys sys 984772442 1390
 sys/man/1/syscall - 664 sys sys 1016466457 1439
 sys/man/1/syscall - 664 sys sys 1016466457 1439
 sys/man/1/tail - 664 sys sys 1113743327 1413
 sys/man/1/tail - 664 sys sys 1113743327 1413
-sys/man/1/tar - 664 sys sys 1113743326 3396
+sys/man/1/tar - 664 sys sys 1119991094 3461
 sys/man/1/tbl - 664 sys sys 944959674 4308
 sys/man/1/tbl - 664 sys sys 944959674 4308
 sys/man/1/tcs - 664 sys sys 952627441 2575
 sys/man/1/tcs - 664 sys sys 952627441 2575
 sys/man/1/tee - 664 sys sys 969499886 351
 sys/man/1/tee - 664 sys sys 969499886 351
@@ -7866,7 +7866,6 @@ sys/src/9/ip/ipv6.h - 664 sys sys 1087406259 4321
 sys/src/9/ip/loopbackmedium.c - 664 sys sys 1055701769 1671
 sys/src/9/ip/loopbackmedium.c - 664 sys sys 1055701769 1671
 sys/src/9/ip/netdevmedium.c - 664 sys sys 1045063517 2675
 sys/src/9/ip/netdevmedium.c - 664 sys sys 1045063517 2675
 sys/src/9/ip/netlog.c - 664 sys sys 1026847568 4003
 sys/src/9/ip/netlog.c - 664 sys sys 1026847568 4003
-sys/src/9/ip/nudp.c - 664 sys sys 1050756592 13069
 sys/src/9/ip/nullmedium.c - 664 sys sys 1086406910 492
 sys/src/9/ip/nullmedium.c - 664 sys sys 1086406910 492
 sys/src/9/ip/pktmedium.c - 664 sys sys 1084331746 1314
 sys/src/9/ip/pktmedium.c - 664 sys sys 1084331746 1314
 sys/src/9/ip/ptclbsum.c - 664 sys sys 1022588099 1243
 sys/src/9/ip/ptclbsum.c - 664 sys sys 1022588099 1243
@@ -8056,7 +8055,6 @@ sys/src/9/port/devloopback.c - 664 sys sys 1076612248 14573
 sys/src/9/port/devmnt.c - 664 sys sys 1117197997 21545
 sys/src/9/port/devmnt.c - 664 sys sys 1117197997 21545
 sys/src/9/port/devmntstats.c - 664 sys sys 1014931173 4039
 sys/src/9/port/devmntstats.c - 664 sys sys 1014931173 4039
 sys/src/9/port/devmouse.c - 664 sys sys 1099760452 12504
 sys/src/9/port/devmouse.c - 664 sys sys 1099760452 12504
-sys/src/9/port/devnmouse.c - 664 sys sys 1036812999 3738
 sys/src/9/port/devpipe.c - 664 sys sys 1077055016 5825
 sys/src/9/port/devpipe.c - 664 sys sys 1077055016 5825
 sys/src/9/port/devpnp.c - 664 sys sys 1088560907 13624
 sys/src/9/port/devpnp.c - 664 sys sys 1088560907 13624
 sys/src/9/port/devproc.c - 664 sys sys 1106585362 28465
 sys/src/9/port/devproc.c - 664 sys sys 1106585362 28465
@@ -12971,12 +12969,12 @@ sys/src/cmd/srvold9p/fcall.c - 664 sys sys 1016921010 2571
 sys/src/cmd/srvold9p/mkfile - 664 sys sys 1016921011 132
 sys/src/cmd/srvold9p/mkfile - 664 sys sys 1016921011 132
 sys/src/cmd/srvold9p/srvold9p.c - 664 sys sys 1045505578 19752
 sys/src/cmd/srvold9p/srvold9p.c - 664 sys sys 1045505578 19752
 sys/src/cmd/ssh - 20000000775 sys sys 1016927305 0
 sys/src/cmd/ssh - 20000000775 sys sys 1016927305 0
-sys/src/cmd/ssh/agent.c - 664 sys sys 1062091014 9053
-sys/src/cmd/ssh/authpasswd.c - 664 sys sys 1062091016 728
-sys/src/cmd/ssh/authrsa.c - 664 sys sys 1062091017 2582
+sys/src/cmd/ssh/agent.c - 664 sys sys 1119985570 9054
+sys/src/cmd/ssh/authpasswd.c - 664 sys sys 1119985570 729
+sys/src/cmd/ssh/authrsa.c - 664 sys sys 1119985570 2584
 sys/src/cmd/ssh/authsrvpasswd.c - 664 sys sys 1016466379 296
 sys/src/cmd/ssh/authsrvpasswd.c - 664 sys sys 1016466379 296
 sys/src/cmd/ssh/authsrvtis.c - 664 sys sys 1074731315 928
 sys/src/cmd/ssh/authsrvtis.c - 664 sys sys 1074731315 928
-sys/src/cmd/ssh/authtis.c - 664 sys sys 1062091017 1004
+sys/src/cmd/ssh/authtis.c - 664 sys sys 1119985570 1006
 sys/src/cmd/ssh/cipher3des.c - 664 sys sys 1016466379 836
 sys/src/cmd/ssh/cipher3des.c - 664 sys sys 1016466379 836
 sys/src/cmd/ssh/cipherblowfish.c - 664 sys sys 1016466379 631
 sys/src/cmd/ssh/cipherblowfish.c - 664 sys sys 1016466379 631
 sys/src/cmd/ssh/cipherdes.c - 664 sys sys 1016466379 567
 sys/src/cmd/ssh/cipherdes.c - 664 sys sys 1016466379 567
@@ -13017,7 +13015,7 @@ sys/src/cmd/tapefs/v10fs.c - 664 sys sys 1014926385 3754
 sys/src/cmd/tapefs/v6fs.c - 664 sys sys 1014926385 3971
 sys/src/cmd/tapefs/v6fs.c - 664 sys sys 1014926385 3971
 sys/src/cmd/tapefs/zip.h - 664 sys sys 1097914153 1428
 sys/src/cmd/tapefs/zip.h - 664 sys sys 1097914153 1428
 sys/src/cmd/tapefs/zipfs.c - 664 sys sys 1097900277 6803
 sys/src/cmd/tapefs/zipfs.c - 664 sys sys 1097900277 6803
-sys/src/cmd/tar.c - 664 sys sys 1118244397 20697
+sys/src/cmd/tar.c - 664 sys sys 1119986000 21041
 sys/src/cmd/tbl - 20000000775 sys sys 954038038 0
 sys/src/cmd/tbl - 20000000775 sys sys 954038038 0
 sys/src/cmd/tbl/mkfile - 664 sys sys 944961243 268
 sys/src/cmd/tbl/mkfile - 664 sys sys 944961243 268
 sys/src/cmd/tbl/t.h - 664 sys sys 944961244 3987
 sys/src/cmd/tbl/t.h - 664 sys sys 944961244 3987
@@ -15050,3 +15048,6 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
+386/bin/ssh - 775 sys sys 1120014537 211039
+386/bin/sshnet - 775 sys sys 1120014538 282738
+386/bin/tar - 775 sys sys 1120014538 96347

+ 9 - 11
dist/replica/plan9.db

@@ -404,8 +404,8 @@
 386/bin/srv - 775 sys sys 1115950113 82387
 386/bin/srv - 775 sys sys 1115950113 82387
 386/bin/srvfs - 775 sys sys 1116903736 40065
 386/bin/srvfs - 775 sys sys 1116903736 40065
 386/bin/srvold9p - 775 sys sys 1115950114 130193
 386/bin/srvold9p - 775 sys sys 1115950114 130193
-386/bin/ssh - 775 sys sys 1119496660 211033
-386/bin/sshnet - 775 sys sys 1119496661 282733
+386/bin/ssh - 775 sys sys 1120014537 211039
+386/bin/sshnet - 775 sys sys 1120014538 282738
 386/bin/stats - 775 sys sys 1115950115 190072
 386/bin/stats - 775 sys sys 1115950115 190072
 386/bin/strings - 775 sys sys 1115950116 62124
 386/bin/strings - 775 sys sys 1115950116 62124
 386/bin/strip - 775 sys sys 1115950116 61981
 386/bin/strip - 775 sys sys 1115950116 61981
@@ -413,7 +413,7 @@
 386/bin/swap - 775 sys sys 1115950116 62094
 386/bin/swap - 775 sys sys 1115950116 62094
 386/bin/syscall - 775 sys sys 1115950116 73536
 386/bin/syscall - 775 sys sys 1115950116 73536
 386/bin/tail - 775 sys sys 1115950116 65938
 386/bin/tail - 775 sys sys 1115950116 65938
-386/bin/tar - 775 sys sys 1118286689 96201
+386/bin/tar - 775 sys sys 1120014538 96347
 386/bin/tbl - 775 sys sys 1115950117 113176
 386/bin/tbl - 775 sys sys 1115950117 113176
 386/bin/tcs - 775 sys sys 1115950118 256588
 386/bin/tcs - 775 sys sys 1115950118 256588
 386/bin/tee - 775 sys sys 1115950118 38428
 386/bin/tee - 775 sys sys 1115950118 38428
@@ -7352,7 +7352,7 @@ sys/man/1/strip - 664 sys sys 958580250 448
 sys/man/1/sum - 664 sys sys 984772442 1390
 sys/man/1/sum - 664 sys sys 984772442 1390
 sys/man/1/syscall - 664 sys sys 1016466457 1439
 sys/man/1/syscall - 664 sys sys 1016466457 1439
 sys/man/1/tail - 664 sys sys 1113743327 1413
 sys/man/1/tail - 664 sys sys 1113743327 1413
-sys/man/1/tar - 664 sys sys 1113743326 3396
+sys/man/1/tar - 664 sys sys 1119991094 3461
 sys/man/1/tbl - 664 sys sys 944959674 4308
 sys/man/1/tbl - 664 sys sys 944959674 4308
 sys/man/1/tcs - 664 sys sys 952627441 2575
 sys/man/1/tcs - 664 sys sys 952627441 2575
 sys/man/1/tee - 664 sys sys 969499886 351
 sys/man/1/tee - 664 sys sys 969499886 351
@@ -7866,7 +7866,6 @@ sys/src/9/ip/ipv6.h - 664 sys sys 1087406259 4321
 sys/src/9/ip/loopbackmedium.c - 664 sys sys 1055701769 1671
 sys/src/9/ip/loopbackmedium.c - 664 sys sys 1055701769 1671
 sys/src/9/ip/netdevmedium.c - 664 sys sys 1045063517 2675
 sys/src/9/ip/netdevmedium.c - 664 sys sys 1045063517 2675
 sys/src/9/ip/netlog.c - 664 sys sys 1026847568 4003
 sys/src/9/ip/netlog.c - 664 sys sys 1026847568 4003
-sys/src/9/ip/nudp.c - 664 sys sys 1050756592 13069
 sys/src/9/ip/nullmedium.c - 664 sys sys 1086406910 492
 sys/src/9/ip/nullmedium.c - 664 sys sys 1086406910 492
 sys/src/9/ip/pktmedium.c - 664 sys sys 1084331746 1314
 sys/src/9/ip/pktmedium.c - 664 sys sys 1084331746 1314
 sys/src/9/ip/ptclbsum.c - 664 sys sys 1022588099 1243
 sys/src/9/ip/ptclbsum.c - 664 sys sys 1022588099 1243
@@ -8056,7 +8055,6 @@ sys/src/9/port/devloopback.c - 664 sys sys 1076612248 14573
 sys/src/9/port/devmnt.c - 664 sys sys 1117197997 21545
 sys/src/9/port/devmnt.c - 664 sys sys 1117197997 21545
 sys/src/9/port/devmntstats.c - 664 sys sys 1014931173 4039
 sys/src/9/port/devmntstats.c - 664 sys sys 1014931173 4039
 sys/src/9/port/devmouse.c - 664 sys sys 1099760452 12504
 sys/src/9/port/devmouse.c - 664 sys sys 1099760452 12504
-sys/src/9/port/devnmouse.c - 664 sys sys 1036812999 3738
 sys/src/9/port/devpipe.c - 664 sys sys 1077055016 5825
 sys/src/9/port/devpipe.c - 664 sys sys 1077055016 5825
 sys/src/9/port/devpnp.c - 664 sys sys 1088560907 13624
 sys/src/9/port/devpnp.c - 664 sys sys 1088560907 13624
 sys/src/9/port/devproc.c - 664 sys sys 1106585362 28465
 sys/src/9/port/devproc.c - 664 sys sys 1106585362 28465
@@ -12971,12 +12969,12 @@ sys/src/cmd/srvold9p/fcall.c - 664 sys sys 1016921010 2571
 sys/src/cmd/srvold9p/mkfile - 664 sys sys 1016921011 132
 sys/src/cmd/srvold9p/mkfile - 664 sys sys 1016921011 132
 sys/src/cmd/srvold9p/srvold9p.c - 664 sys sys 1045505578 19752
 sys/src/cmd/srvold9p/srvold9p.c - 664 sys sys 1045505578 19752
 sys/src/cmd/ssh - 20000000775 sys sys 1016927305 0
 sys/src/cmd/ssh - 20000000775 sys sys 1016927305 0
-sys/src/cmd/ssh/agent.c - 664 sys sys 1062091014 9053
-sys/src/cmd/ssh/authpasswd.c - 664 sys sys 1062091016 728
-sys/src/cmd/ssh/authrsa.c - 664 sys sys 1062091017 2582
+sys/src/cmd/ssh/agent.c - 664 sys sys 1119985570 9054
+sys/src/cmd/ssh/authpasswd.c - 664 sys sys 1119985570 729
+sys/src/cmd/ssh/authrsa.c - 664 sys sys 1119985570 2584
 sys/src/cmd/ssh/authsrvpasswd.c - 664 sys sys 1016466379 296
 sys/src/cmd/ssh/authsrvpasswd.c - 664 sys sys 1016466379 296
 sys/src/cmd/ssh/authsrvtis.c - 664 sys sys 1074731315 928
 sys/src/cmd/ssh/authsrvtis.c - 664 sys sys 1074731315 928
-sys/src/cmd/ssh/authtis.c - 664 sys sys 1062091017 1004
+sys/src/cmd/ssh/authtis.c - 664 sys sys 1119985570 1006
 sys/src/cmd/ssh/cipher3des.c - 664 sys sys 1016466379 836
 sys/src/cmd/ssh/cipher3des.c - 664 sys sys 1016466379 836
 sys/src/cmd/ssh/cipherblowfish.c - 664 sys sys 1016466379 631
 sys/src/cmd/ssh/cipherblowfish.c - 664 sys sys 1016466379 631
 sys/src/cmd/ssh/cipherdes.c - 664 sys sys 1016466379 567
 sys/src/cmd/ssh/cipherdes.c - 664 sys sys 1016466379 567
@@ -13017,7 +13015,7 @@ sys/src/cmd/tapefs/v10fs.c - 664 sys sys 1014926385 3754
 sys/src/cmd/tapefs/v6fs.c - 664 sys sys 1014926385 3971
 sys/src/cmd/tapefs/v6fs.c - 664 sys sys 1014926385 3971
 sys/src/cmd/tapefs/zip.h - 664 sys sys 1097914153 1428
 sys/src/cmd/tapefs/zip.h - 664 sys sys 1097914153 1428
 sys/src/cmd/tapefs/zipfs.c - 664 sys sys 1097900277 6803
 sys/src/cmd/tapefs/zipfs.c - 664 sys sys 1097900277 6803
-sys/src/cmd/tar.c - 664 sys sys 1118244397 20697
+sys/src/cmd/tar.c - 664 sys sys 1119986000 21041
 sys/src/cmd/tbl - 20000000775 sys sys 954038038 0
 sys/src/cmd/tbl - 20000000775 sys sys 954038038 0
 sys/src/cmd/tbl/mkfile - 664 sys sys 944961243 268
 sys/src/cmd/tbl/mkfile - 664 sys sys 944961243 268
 sys/src/cmd/tbl/t.h - 664 sys sys 944961244 3987
 sys/src/cmd/tbl/t.h - 664 sys sys 944961244 3987

+ 11 - 0
dist/replica/plan9.log

@@ -19583,3 +19583,14 @@
 1119583811 1 c 386/9pccpu - 775 sys sys 1119582817 1489332
 1119583811 1 c 386/9pccpu - 775 sys sys 1119582817 1489332
 1119583811 2 c 386/9pcdisk - 775 sys sys 1119582821 2040641
 1119583811 2 c 386/9pcdisk - 775 sys sys 1119582821 2040641
 1119583811 3 c 386/9pcf - 775 sys sys 1119582826 2383465
 1119583811 3 c 386/9pcf - 775 sys sys 1119582826 2383465
+1119972612 0 d sys/src/9/port/devnmouse.c - 664 sys sys 1036812999 0
+1119972612 1 d sys/src/9/ip/nudp.c - 664 sys sys 1050756592 0
+1119987016 0 c sys/src/cmd/ssh/agent.c - 664 sys sys 1119985570 9054
+1119987016 1 c sys/src/cmd/ssh/authpasswd.c - 664 sys sys 1119985570 729
+1119987016 2 c sys/src/cmd/ssh/authrsa.c - 664 sys sys 1119985570 2584
+1119987016 3 c sys/src/cmd/ssh/authtis.c - 664 sys sys 1119985570 1006
+1119987016 4 c sys/src/cmd/tar.c - 664 sys sys 1119986000 21041
+1119992417 0 c sys/man/1/tar - 664 sys sys 1119991094 3461
+1120015822 0 c 386/bin/ssh - 775 sys sys 1120014537 211039
+1120015822 1 c 386/bin/sshnet - 775 sys sys 1120014538 282738
+1120015822 2 c 386/bin/tar - 775 sys sys 1120014538 96347

+ 5 - 0
sys/man/1/tar

@@ -165,3 +165,8 @@ File path names are limited to
 .PP
 .PP
 The tar format allows specification of links and symbolic links,
 The tar format allows specification of links and symbolic links,
 concepts foreign to Plan 9: they are ignored.
 concepts foreign to Plan 9: they are ignored.
+.PP
+The
+.B r
+key (append)
+cannot be used on compressed archives.

+ 1 - 1
sys/src/cmd/ssh/agent.c

@@ -172,7 +172,7 @@ startagent(Conn *c)
 	m = allocmsg(c, SSH_CMSG_AGENT_REQUEST_FORWARDING, 0);
 	m = allocmsg(c, SSH_CMSG_AGENT_REQUEST_FORWARDING, 0);
 	sendmsg(m);
 	sendmsg(m);
 
 
-	m = recvmsg(c, 0);
+	m = recvmsg(c, -1);
 	switch(m->type){
 	switch(m->type){
 	case SSH_SMSG_SUCCESS:
 	case SSH_SMSG_SUCCESS:
 		debug(DBG_AUTH, "agent allocated\n");
 		debug(DBG_AUTH, "agent allocated\n");

+ 1 - 1
sys/src/cmd/ssh/authpasswd.c

@@ -17,7 +17,7 @@ authpasswordfn(Conn *c)
 	putstring(m, up->passwd);
 	putstring(m, up->passwd);
 	sendmsg(m);
 	sendmsg(m);
 
 
-	m = recvmsg(c, 0);
+	m = recvmsg(c, -1);
 	switch(m->type){
 	switch(m->type){
 	default:
 	default:
 		badmsg(m, 0);
 		badmsg(m, 0);

+ 2 - 2
sys/src/cmd/ssh/authrsa.c

@@ -38,7 +38,7 @@ authrsafn(Conn *c)
 		putmpint(m, mod);
 		putmpint(m, mod);
 		sendmsg(m);
 		sendmsg(m);
 		mpfree(mod);
 		mpfree(mod);
-		m = recvmsg(c, 0);
+		m = recvmsg(c, -1);
 		switch(m->type){
 		switch(m->type){
 		case SSH_SMSG_FAILURE:
 		case SSH_SMSG_FAILURE:
 			debug(DBG_AUTH, "\tnot accepted\n", (char*)rpc->arg);
 			debug(DBG_AUTH, "\tnot accepted\n", (char*)rpc->arg);
@@ -87,7 +87,7 @@ authrsafn(Conn *c)
 		putbytes(m, response, MD5dlen);
 		putbytes(m, response, MD5dlen);
 		sendmsg(m);
 		sendmsg(m);
 
 
-		m = recvmsg(c, 0);
+		m = recvmsg(c, -1);
 		switch(m->type){
 		switch(m->type){
 		case SSH_SMSG_FAILURE:
 		case SSH_SMSG_FAILURE:
 			free(m);
 			free(m);

+ 2 - 2
sys/src/cmd/ssh/authtis.c

@@ -13,7 +13,7 @@ authtisfn(Conn *c)
 	debug(DBG_AUTH, "try TIS\n");
 	debug(DBG_AUTH, "try TIS\n");
 	sendmsg(allocmsg(c, SSH_CMSG_AUTH_TIS, 0));
 	sendmsg(allocmsg(c, SSH_CMSG_AUTH_TIS, 0));
 
 
-	m = recvmsg(c, 0);
+	m = recvmsg(c, -1);
 	switch(m->type){
 	switch(m->type){
 	default:
 	default:
 		badmsg(m, SSH_SMSG_AUTH_TIS_CHALLENGE);
 		badmsg(m, SSH_SMSG_AUTH_TIS_CHALLENGE);
@@ -44,7 +44,7 @@ authtisfn(Conn *c)
 	putstring(m, resp);
 	putstring(m, resp);
 	sendmsg(m);
 	sendmsg(m);
 	
 	
-	m = recvmsg(c, 0);
+	m = recvmsg(c, -1);
 	switch(m->type){
 	switch(m->type){
 	default:
 	default:
 		badmsg(m, 0);
 		badmsg(m, 0);

+ 10 - 2
sys/src/cmd/tar.c

@@ -127,6 +127,7 @@ static int settime;
 static int verbose;
 static int verbose;
 static int docompress;
 static int docompress;
 static int keepexisting;
 static int keepexisting;
+static Off blkoff;	/* offset of the current archive block (not Tblock) */
 static Off nexthdr;
 static Off nexthdr;
 
 
 static int nblock = Dblock;
 static int nblock = Dblock;
@@ -249,6 +250,7 @@ refill(int ar, char *bufs, int justhdr)
 		seekable = seek(ar, 0, 1) >= 0;
 		seekable = seek(ar, 0, 1) >= 0;
 	/* try to size non-pipe input at first read */
 	/* try to size non-pipe input at first read */
 	if (first && usefile) {
 	if (first && usefile) {
+		blkoff = seek(ar, 0, 1);	/* note position */
 		n = read(ar, bufs, bytes);
 		n = read(ar, bufs, bytes);
 		if (n <= 0)
 		if (n <= 0)
 			sysfatal("error reading archive: %r");
 			sysfatal("error reading archive: %r");
@@ -380,17 +382,23 @@ putblkmany(int ar, int blks)
  * common routines
  * common routines
  */
  */
 
 
-/* modifies hp->chksum */
+/*
+ * modifies hp->chksum but restores it; important for the last block of the
+ * old archive when updating with `tar rf archive'
+ */
 long
 long
 chksum(Hdr *hp)
 chksum(Hdr *hp)
 {
 {
 	int n = Tblock;
 	int n = Tblock;
 	long i = 0;
 	long i = 0;
 	uchar *cp = hp->data;
 	uchar *cp = hp->data;
+	char oldsum[sizeof hp->chksum];
 
 
+	memmove(oldsum, hp->chksum, sizeof oldsum);
 	memset(hp->chksum, ' ', sizeof hp->chksum);
 	memset(hp->chksum, ' ', sizeof hp->chksum);
 	while (n-- > 0)
 	while (n-- > 0)
 		i += *cp++;
 		i += *cp++;
+	memmove(hp->chksum, oldsum, sizeof oldsum);
 	return i;
 	return i;
 }
 }
 
 
@@ -712,7 +720,7 @@ replace(char **argv)
 		 * now seek back over the (big) archive block containing it,
 		 * now seek back over the (big) archive block containing it,
 		 * and back up curblk ptr over end-of-archive Tblock in memory.
 		 * and back up curblk ptr over end-of-archive Tblock in memory.
 		 */
 		 */
-		if (seek(ar, -Tblock*nblock, 1) < 0)
+		if (seek(ar, blkoff, 0) < 0)
 			sysfatal("can't seek back over end-of-archive: %r");
 			sysfatal("can't seek back over end-of-archive: %r");
 		curblk--;
 		curblk--;
 	}
 	}