From 882a532b08d90d71fbe6e8cb347cabba8cde6be0 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Sun, 12 Aug 2007 15:31:41 +0000 Subject: [PATCH] 2007-08-12 Dan Williams * callouts/nm-dhcp-client-action.c - (build_message): ignore non-DHCP-related environment variables git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2665 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 5 +++++ callouts/nm-dhcp-client-action.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/ChangeLog b/ChangeLog index 45458322df..df1b87c0b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-08-12 Dan Williams + + * callouts/nm-dhcp-client-action.c + - (build_message): ignore non-DHCP-related environment variables + 2007-08-12 Dan Williams * Makefile.am diff --git a/callouts/nm-dhcp-client-action.c b/callouts/nm-dhcp-client-action.c index 9e36df12eb..96e232d423 100644 --- a/callouts/nm-dhcp-client-action.c +++ b/callouts/nm-dhcp-client-action.c @@ -176,11 +176,14 @@ dbus_bool_t wpa_dbus_dict_append_byte_array(DBusMessageIter *iter_dict, } +const char ** ignore[] = {"PATH", "SHLVL", "_", "PWD", "dhc_dbus", NULL}; + dbus_bool_t build_message (DBusMessage * message) { char ** env = NULL; char ** item; + char ** p; dbus_bool_t success = FALSE; DBusMessageIter iter, iter_dict; @@ -191,8 +194,17 @@ build_message (DBusMessage * message) /* List environment and format for dbus dict */ env = g_listenv (); for (item = env; *item; item++) { + gboolean ignore_item = FALSE; const char * val = g_getenv (*item); + /* Ignore non-DCHP-related environment variables */ + for (p = (char **) ignore; *p && !ignore_item; p++) { + if (strncmp (*item, *p, strlen (*p)) == 0) + ignore_item = TRUE; + } + if (ignore_item) + continue; + /* Value passed as a byte array rather than a string, because there are * no character encoding guarantees with DHCP, and D-Bus requires * strings to be UTF-8.