From dce6d94d8b7ed2971ce1bc45eee0600439039fbd Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 3 Nov 2010 20:29:17 +0100 Subject: list_possible_events(): do not forget to unlock the dir! Signed-off-by: Denys Vlasenko --- lib/utils/run_event.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'lib/utils') diff --git a/lib/utils/run_event.c b/lib/utils/run_event.c index 020799a9..80c8d04d 100644 --- a/lib/utils/run_event.c +++ b/lib/utils/run_event.c @@ -98,6 +98,7 @@ int run_event(struct run_event_state *state, p = next_word; } /* end of word loop */ + /* Don't keep dump dir locked across program runs */ dd_close(dd); dd = NULL; @@ -217,9 +218,9 @@ char *list_possible_events(const char *dump_dir_name, const char *pfx) /* Get this name from dump dir */ if (!dd) { - /* Without dir name to match, we assume match */ + /* Without dir name to match, we assume match for this expr */ if (!dump_dir_name) - goto matched; + goto next_word; dd = dd_opendir(dump_dir_name, /*flags:*/ 0); if (!dd) goto stop; /* error (note: dd_opendir logged error msg) */ @@ -235,14 +236,11 @@ char *list_possible_events(const char *dump_dir_name, const char *pfx) free(real_val); } + next_word: /* Go to next word */ p = next_word; } /* end of word loop */ - matched: - dd_close(dd); - dd = NULL; - if (line[0] == '\n' /* do we *have* saved matched "\nEVENT_VAL\n"? */ /* and does result->buf NOT yet have VAL? */ && strncmp(result->buf, line + 1, strlen(line + 1)) != 0 @@ -258,6 +256,7 @@ char *list_possible_events(const char *dump_dir_name, const char *pfx) stop: free(line); + dd_close(dd); fclose(conffile); return strbuf_free_nobuf(result); -- cgit