From e5cc7703d7d926a1765fccd123df2b81f3368640 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Sat, 6 Jun 2009 23:19:26 +0200 Subject: Properly free return value of opendir() on calculation interrupt When interrupinting the calculation process by pressing 'q' while it's looping through a directory, or when a directory could be openend but not chdir()'ed into, closedir() wasn't called. --- ChangeLog | 1 + src/calc.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index ccbb3c8..bc7a44e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,7 @@ git - ? - Properly select the next item after deletion - Removed reliance of dirfd() - Fixed non-void return in void delete_process() + - Fixed several tiny memory leaks 1.5 - 2009-05-02 - Fixed incorrect apparent size on directory refresh diff --git a/src/calc.c b/src/calc.c index 23f142a..cceb9a9 100644 --- a/src/calc.c +++ b/src/calc.c @@ -177,6 +177,8 @@ int calc_dir(struct dir *dest, char *name) { while((t = t->parent) != NULL) t->flags |= FF_SERR; calc_leavepath(); + if(dir != NULL) + closedir(dir); return 0; } @@ -187,6 +189,7 @@ int calc_dir(struct dir *dest, char *name) { dest->flags |= FF_ERR; if(input_handle(1)) { calc_leavepath(); + closedir(dir); return 1; } calc_leavepath(); -- cgit v1.2.3