diff options
author | carlosg <carlosg> | 2006-12-01 20:42:39 +0000 |
---|---|---|
committer | carlosg <carlosg> | 2006-12-01 20:42:39 +0000 |
commit | e4d682291e1e3cabc234552182998783c6128660 (patch) | |
tree | 8ebfe7f26a7b9915596eea3d861bf841268db90f /dispatcher | |
parent | 154d417396810982fe125964a1f78b4555b05998 (diff) |
2006-12-01 Carlos Garnacho <carlosg@gnome.org>
* dispatcher/dispatcher.c: do not read trash from private DBus stdout,
problem spotted by seb128
Diffstat (limited to 'dispatcher')
-rw-r--r-- | dispatcher/dispatcher.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/dispatcher/dispatcher.c b/dispatcher/dispatcher.c index f3721b5..1e4b678 100644 --- a/dispatcher/dispatcher.c +++ b/dispatcher/dispatcher.c @@ -241,8 +241,9 @@ get_private_bus (void) { /* spawn private bus */ static gchar *argv[] = { "dbus-daemon", "--session", "--print-address", "--nofork", NULL }; - gint output_fd; - gchar str[300], *envvar; + gint output_fd, size; + gchar *envvar; + gchar str[300] = { 0, }; if (!g_spawn_async_with_pipes (NULL, argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, @@ -251,8 +252,8 @@ get_private_bus (void) return NULL; watch_id = g_child_watch_add (bus_pid, on_bus_term, NULL); - read (output_fd, str, sizeof (str)); - str[strlen(str) - 1] = '\0'; + size = read (output_fd, str, sizeof (str)); + str[size - 1] = '\0'; envvar = g_strdup_printf (DBUS_ADDRESS_ENVVAR "=%s", str); putenv (envvar); |