summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-03-01 23:23:01 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2020-03-01 23:23:01 +0100
commit17136370d8fa16697e8e5fce8ae65c67197f4438 (patch)
tree0717d860c28a44329cba01644f290944647620bf /sys
parent2f976d8b56b77baa7a3b3ed29a56652a53c5315c (diff)
hgfs: fix loadrevinfo() for empty log bug
loadrevinfo() would fail on a empty log portion due to a bug in the previous commit. the loop is supposed to skip all bytes until we encounter a empty line. the loop starts at the beginning of a line so when we encounter a \n, we have to terminate, otherwise read bytes until we see \n (end of a line) and then read another and test the condition again.
Diffstat (limited to 'sys')
-rw-r--r--sys/src/cmd/hgfs/info.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/src/cmd/hgfs/info.c b/sys/src/cmd/hgfs/info.c
index 0d4dbb974..53fbda936 100644
--- a/sys/src/cmd/hgfs/info.c
+++ b/sys/src/cmd/hgfs/info.c
@@ -45,18 +45,16 @@ loadrevinfo(Revlog *changelog, int rev)
free(line);
ri->logoff = Boffset(buf);
-
for(;;){
if((c = Bgetc(buf)) < 0)
goto Error;
- if(c == '\n'){
+ if(c == '\n')
+ break;
+ do {
if((c = Bgetc(buf)) < 0)
goto Error;
- if(c == '\n')
- break;
- }
+ } while(c != '\n');
}
-
ri->loglen = Boffset(buf) - ri->logoff - 1;
line = Brdstr(buf, '\0', 1);