summaryrefslogtreecommitdiff
path: root/dispatcher
diff options
context:
space:
mode:
authorcarlosg <carlosg>2006-12-01 20:42:39 +0000
committercarlosg <carlosg>2006-12-01 20:42:39 +0000
commite4d682291e1e3cabc234552182998783c6128660 (patch)
tree8ebfe7f26a7b9915596eea3d861bf841268db90f /dispatcher
parent154d417396810982fe125964a1f78b4555b05998 (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.c9
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);