9fans archive / 2000 / 07 / 75 /    prev next

From: sean@pla...
Subject: [9fans] re: dossrv bug
Date: Wed, 5 Jul 2000 10:34:57 -0400

here's a fix to a dossrv bug in handling long file names.
diff /n/dump/2000/0705/sys/src/cmd/dossrv/dosfs.c dosfs.c
555c555
< 	for(prevdo = dp->offset-32; prevdo >= 0; prevdo -= 32){
---
> 	for(prevdo = dp->offset-DOSDIRSIZE; prevdo >= 0; prevdo -= DOSDIRSIZE){
562c562
< 		for(prevdo = ((Dosbpb*)xf->ptr)->sectsize-32; prevdo >= 0; prevdo -= 32){
---
> 		for(prevdo = ((Dosbpb*)xf->ptr)->sectsize-DOSDIRSIZE; prevdo >= 0; prevdo -= DOSDIRSIZE){
664c664
< 		for(prevdo = dp->offset-32; prevdo >= 0; prevdo -= 32){
---
> 		for(prevdo = dp->offset-DOSDIRSIZE; prevdo >= 0; prevdo -= DOSDIRSIZE){
671c671
< 			for(prevdo = ((Dosbpb*)f->xf->ptr)->sectsize-32; prevdo >= 0; prevdo -= 32){
---
> 			for(prevdo = ((Dosbpb*)f->xf->ptr)->sectsize-DOSDIRSIZE; prevdo >= 0; prevdo -= DOSDIRSIZE){
diff /n/dump/2000/0705/sys/src/cmd/dossrv/dossubs.c dossubs.c
517c517
< 	int isect, addr, o, addr1, addr2, o1, islong, have, need, sum;
---
> 	int isect, addr, o, addr1, addr2, prevaddr, prevaddr1, o1, islong, have, need, sum;
522a523
> 	prevaddr1 = -1;
541c542
< 		dp->prevaddr = addr;
---
> 		prevaddr = addr;
565a567
> 					prevaddr1 = prevaddr;
577a580
> 				dp->prevaddr = prevaddr1;
588a592
> 					prevaddr1 = prevaddr;
620a625
> 			dp->prevaddr = prevaddr;