Mercurial > hg-old > index.cgi
diff lwlink/readfiles.c @ 173:0395e6fd67e9
Fixed stupid errors with changes for archive handling
author | lost |
---|---|
date | Mon, 02 Mar 2009 04:13:49 +0000 |
parents | d610b8aef91b |
children | 6ebb93b409ba |
line wrap: on
line diff
--- a/lwlink/readfiles.c Sun Mar 01 22:59:52 2009 +0000 +++ b/lwlink/readfiles.c Mon Mar 02 04:13:49 2009 +0000 @@ -340,9 +340,11 @@ if (cc >= fn -> filesize || !(fn -> filedata[cc])) return; - for (l = cc; cc < fn -> filesize && fn -> filedata[cc]; l++) + for (l = cc; cc < fn -> filesize && fn -> filedata[cc]; cc++) /* do nothing */ ; + cc++; + if (cc >= fn -> filesize) { fprintf(stderr, "Malformed archive file %s.\n", fn -> filename); @@ -352,8 +354,10 @@ if (cc + 4 > fn -> filesize) return; - flen = (fn -> filedata[cc++] << 24) | (fn -> filedata[cc++] << 16) - | (fn -> filedata[cc++] << 8) | (fn -> filedata[cc]); + flen = (fn -> filedata[cc++] << 24); + flen |= (fn -> filedata[cc++] << 16); + flen |= (fn -> filedata[cc++] << 8); + flen |= (fn -> filedata[cc++]); if (flen == 0) return; @@ -372,7 +376,9 @@ fn -> subs[fn -> nsubs] -> filesize = flen; fn -> subs[fn -> nsubs] -> filename = lw_strdup(fn -> filedata + l); fn -> subs[fn -> nsubs] -> parent = fn; + read_file(fn -> subs[fn -> nsubs]); fn -> nsubs++; + cc += flen; } }