diff options
| author | Denys Vlasenko <dvlasenk@redhat.com> | 2010-11-03 20:29:17 +0100 |
|---|---|---|
| committer | Denys Vlasenko <dvlasenk@redhat.com> | 2010-11-03 20:29:17 +0100 |
| commit | dce6d94d8b7ed2971ce1bc45eee0600439039fbd (patch) | |
| tree | 1e35de7753a7ad96012f804f8656a7112fec6f97 /lib | |
| parent | 76eea28e05500146cd79633f6935a8368bee6ff1 (diff) | |
| download | abrt-dce6d94d8b7ed2971ce1bc45eee0600439039fbd.tar.gz abrt-dce6d94d8b7ed2971ce1bc45eee0600439039fbd.tar.xz abrt-dce6d94d8b7ed2971ce1bc45eee0600439039fbd.zip | |
list_possible_events(): do not forget to unlock the dir!
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/utils/run_event.c | 11 |
1 files changed, 5 insertions, 6 deletions
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); |
