summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2010-11-04 13:18:51 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2010-11-04 13:18:51 +0100
commit32b0d8a480d8427e8dcc00605ff8f146021e0c37 (patch)
tree7abcbd0cee56034bd570b80a359c734cced6c75a /lib
parent6cc77995e9132054d884b970c0b320d5bf68045a (diff)
downloadabrt-32b0d8a480d8427e8dcc00605ff8f146021e0c37.tar.gz
abrt-32b0d8a480d8427e8dcc00605ff8f146021e0c37.tar.xz
abrt-32b0d8a480d8427e8dcc00605ff8f146021e0c37.zip
supply CD_EVENTS element in crash dump structures passed to GUI
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/utils/run_event.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/utils/run_event.c b/lib/utils/run_event.c
index 5103560c..e89d1040 100644
--- a/lib/utils/run_event.c
+++ b/lib/utils/run_event.c
@@ -57,16 +57,13 @@ int run_event(struct run_event_state *state,
{
char *end_word = skip_non_whitespace(p);
char *next_word = skip_whitespace(end_word);
-
- /* *end_word = '\0'; - BUG, truncates command */
+ *end_word = '\0';
/* If there is no '=' in this word... */
char *line_val = strchr(p, '=');
- if (!line_val || line_val >= end_word)
+ if (!line_val)
break; /* ...we found the start of a command */
- *end_word = '\0';
-
/* Current word has VAR=VAL form. line_val => VAL */
*line_val++ = '\0';
@@ -172,7 +169,7 @@ int run_event(struct run_event_state *state,
return retval;
}
-char *list_possible_events(const char *dump_dir_name, const char *pfx)
+char *list_possible_events(struct dump_dir *dd, const char *dump_dir_name, const char *pfx)
{
FILE *conffile = fopen(CONF_DIR"/abrt_event.conf", "r");
if (!conffile)
@@ -181,7 +178,13 @@ char *list_possible_events(const char *dump_dir_name, const char *pfx)
return NULL;
}
- struct dump_dir *dd = NULL;
+ /* We check "dump_dir_name == NULL" later.
+ * Prevent the possibility that both dump_dir_name
+ * and dd are non-NULL (which does not make sense)
+ */
+ if (dd)
+ dump_dir_name = NULL;
+
unsigned pfx_len = strlen(pfx);
struct strbuf *result = strbuf_new();
char *line;
@@ -259,7 +262,8 @@ char *list_possible_events(const char *dump_dir_name, const char *pfx)
stop:
free(line);
- dd_close(dd);
+ if (dump_dir_name != NULL)
+ dd_close(dd);
fclose(conffile);
return strbuf_free_nobuf(result);