summaryrefslogtreecommitdiff
path: root/src/calc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/calc.c')
-rw-r--r--src/calc.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/calc.c b/src/calc.c
index 9601d10..8ae299e 100644
--- a/src/calc.c
+++ b/src/calc.c
@@ -342,10 +342,16 @@ void calc_process() {
}
root = t;
curdev = fs.st_dev;
- free(path);
/* start calculating */
if(!calc_dir(root, name) && !failed) {
+ free(path);
+ if(root->sub == NULL) {
+ freedir(root);
+ failed = 1;
+ strcpy(errmsg, "Directory empty.");
+ goto calc_fail;
+ }
browse_init(root->sub);
/* update references and free original item */
@@ -373,6 +379,7 @@ void calc_process() {
}
/* something went wrong... */
+ free(path);
freedir(root);
calc_fail:
while(failed && !input_handle(0))