diff options
Diffstat (limited to 'rdoff')
-rw-r--r-- | rdoff/ldrdf.c | 2 | ||||
-rw-r--r-- | rdoff/rdfload.c | 1 | ||||
-rw-r--r-- | rdoff/rdlib.c | 3 |
3 files changed, 5 insertions, 1 deletions
diff --git a/rdoff/ldrdf.c b/rdoff/ldrdf.c index 2ddada33..7c61d4cf 100644 --- a/rdoff/ldrdf.c +++ b/rdoff/ldrdf.c @@ -1275,12 +1275,14 @@ int main(int argc, char **argv) if ((p = strchr(buf, '\n')) != NULL) *p = '\0'; if (i >= 128) { + fclose(f); fprintf(stderr, "ldrdf: too many input files\n"); exit(1); } *(respstrings + i) = newstr(buf); argc++, i++; } + fclose(f); break; } case '2': diff --git a/rdoff/rdfload.c b/rdoff/rdfload.c index 4fd3dbd0..5a7ab631 100644 --- a/rdoff/rdfload.c +++ b/rdoff/rdfload.c @@ -94,6 +94,7 @@ rdfmodule *rdfload(const char *filename) if (f->d) free(f->d); free(f); + free(hdr); return NULL; } diff --git a/rdoff/rdlib.c b/rdoff/rdlib.c index 31dbdb4b..838f1407 100644 --- a/rdoff/rdlib.c +++ b/rdoff/rdlib.c @@ -59,7 +59,7 @@ char *rdl_errors[5] = { int rdl_verify(const char *filename) { - FILE *fp = fopen(filename, "rb"); + FILE *fp; char buf[257]; int i; int32_t length; @@ -69,6 +69,7 @@ int rdl_verify(const char *filename) if (lastresult != -1 && !strcmp(filename, lastverified)) return lastresult; + fp = fopen(filename, "rb"); strcpy(lastverified, filename); if (!fp) |