* Missing return value (needed by clang) * Implicit declarations (string.h and doall) * Datafile loading broken on architectures where sizeof(long)>4 https://bugs.debian.org/56139 * Scavenger leaks file descriptors https://bugs.debian.org/175128 * Font mapping with clang or gcc-7+ https://svnweb.freebsd.org/ports?view=revision&revision=444423 --- a/src/edit.c +++ b/src/edit.c @@ -3,2 +3,3 @@ #include +#include #include --- a/src/scav.c +++ b/src/scav.c @@ -246,7 +246,9 @@ - val1=myci()<<24L; - val1|=myci()<<16L; - val1|=myci()<<8; - val1|=myci(); + int i,j; + for (i=0; i<4; i++) { + j = myci(); + if (j==-1) return -1L; + val1 = (val1<<8) + j; + } return val1; @@ -404,6 +406,6 @@ got=read(input,buff,8); - if(got!=8) return -2; - if (strncmp(buff,"SCAV",4)) return -3; + if(got!=8) {close(input);return -2;} + if (strncmp(buff,"SCAV",4)) {close(input);return -3;} max=(buff[4]<<24) | (buff[5]<<16) | (buff[6]<<8) | buff[7]; - if(num>=max) return 0; + if(num>=max) {close(input);return 0;} lseek(input,(num+1)<<3,SEEK_SET); @@ -413,3 +415,3 @@ if(len>length) len=length; - if(!offset || !len) return 0; + if(!offset || !len) {close(input);return 0;} lseek(input,offset,SEEK_SET); @@ -450,4 +452,4 @@ got=read(input,buff,8); - if(got!=8) return -2; - if(strncmp(buff,"SCAV",4)) return -3; + if(got!=8) {close(input);return -2;} + if(strncmp(buff,"SCAV",4)) {close(input);return -3;} output=creat(bakname,00600); @@ -475,4 +477,4 @@ headers[i+i]+=delta; - if (write(output,"SCAV",4) != 4) return -200; - if (!rlout(output,max)) return -200; + if (write(output,"SCAV",4) != 4) {close(input);close(output);return -200;} + if (!rlout(output,max)) {close(input);close(output);return -200;} headers[num+num]=0; @@ -480,3 +482,3 @@ for(i=0;i1024 ? 1024 : count; - if (read(input,copybuff,got) != got) return -200; - if (write(output,copybuff,got) != got) return -200; + if (read(input,copybuff,got) != got) {close(input);close(output);return -200;} + if (write(output,copybuff,got) != got) {close(input);close(output);return -200;} count-=got; @@ -500,3 +502,3 @@ if (!got) break; - if (write (output, copybuff, got) != got) return -200; + if (write (output, copybuff, got) != got) {close(input);close(output);return -200;} offset += got; @@ -505,8 +507,8 @@ { - if (write (output, take, len) != len) return -200; + if (write (output, take, len) != len) {close(input);close(output);return -200;} lseek (output, (num+1) << 3, SEEK_SET); - if (!rlout (output, offset)) return -200; + if (!rlout (output, offset)) {close(input);close(output);return -200;} } close (input); - if (fsync(output)) return -200; + if (fsync(output)) {close(output);return -200;} if (close(output)) return -200; @@ -1384,2 +1386,3 @@ } + close(file); } @@ -1418,2 +1421,4 @@ } while(len); + close(input); + close(output); return 0; @@ -1450,3 +1455,3 @@ } - } + } else close(file); @@ -1487,3 +1492,3 @@ } - } + } else close(file); } @@ -1574,3 +1579,3 @@ puts(err); - return; + return 1; } --- a/src/sound.c +++ b/src/sound.c @@ -50,2 +50,3 @@ +void doall(); void opendsp(int samplerate) @@ -201,3 +202,3 @@ -doall() +void doall() { --- a/src/x.c +++ b/src/x.c @@ -447,3 +447,3 @@ { - fmap[tolower(*p)]=fmap[*p++]=i++; + fmap[tolower(*p)]=fmap[*p]=i++; p++; }