diff --git a/edify/expr.c b/edify/expr.c index 72e5100..df3c1ab 100644 --- a/edify/expr.c +++ b/edify/expr.c @@ -67,6 +67,7 @@ char* ConcatFn(const char* name, State* state, int argc, Expr* argv[]) { for (i = 0; i < argc; ++i) { free(strings[i]); } + free(strings); return result; } @@ -389,11 +390,13 @@ int ReadArgs(State* state, Expr* argv[], int count, ...) { for (j = 0; j < i; ++j) { free(args[j]); } + free(args); return -1; } *(va_arg(v, char**)) = args[i]; } va_end(v); + free(args); return 0; } diff --git a/edify/main.c b/edify/main.c index 0e36108..a2b74ad 100644 --- a/edify/main.c +++ b/edify/main.c @@ -181,6 +181,10 @@ int main(int argc, char** argv) { } FILE* f = fopen(argv[1], "r"); + if (f == NULL) { + printf("%s: %s: No such file or directory\n", argv[0], argv[1]); + return 1; + } char buffer[8192]; int size = fread(buffer, 1, 8191, f); fclose(f);