aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--edify/expr.c3
-rw-r--r--edify/main.c4
2 files changed, 7 insertions, 0 deletions
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);