diff options
Diffstat (limited to 'net-misc/networkmanager/files/networkmanager-0.9.2.0-ifnet-password-truncated.patch')
-rw-r--r-- | net-misc/networkmanager/files/networkmanager-0.9.2.0-ifnet-password-truncated.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/net-misc/networkmanager/files/networkmanager-0.9.2.0-ifnet-password-truncated.patch b/net-misc/networkmanager/files/networkmanager-0.9.2.0-ifnet-password-truncated.patch new file mode 100644 index 000000000000..d41c4b2e07a6 --- /dev/null +++ b/net-misc/networkmanager/files/networkmanager-0.9.2.0-ifnet-password-truncated.patch @@ -0,0 +1,47 @@ +From 03d80950e960031af977c3037b57d41e36701fb2 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gentoo.org> +Date: Sat, 18 Feb 2012 20:03:33 -0500 +Subject: [PATCH] ifnet: do not truncate WPA passwords at '#' character + +We need to do the same thing as wpa_supplicant's own config file parser +and ignore '#' characters that occur between the first and last '"' +characters in a config file line. + +https://bugzilla.gnome.org/show_bug.cgi?id=670381 +--- + src/settings/plugins/ifnet/wpa_parser.c | 13 +++++++++---- + 1 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/src/settings/plugins/ifnet/wpa_parser.c b/src/settings/plugins/ifnet/wpa_parser.c +index da2bc3b..f7a5b32 100644 +--- a/src/settings/plugins/ifnet/wpa_parser.c ++++ b/src/settings/plugins/ifnet/wpa_parser.c +@@ -279,16 +279,21 @@ wpa_parser_init (const char *wpa_supplicant_conf) + } else { + GHashTable *network = + g_hash_table_new (g_str_hash, g_str_equal); +- gchar *tmp; + + do { ++ gchar *quote_start, *quote_end = NULL, *comment; ++ + if (line[0] == '#' || line[0] == '\0') { + g_free (line); + continue; + } +- /* ignore inline comments */ +- if ((tmp = strchr (line, '#')) != NULL) +- *tmp = '\0'; ++ /* ignore inline comments unless inside ++ a double-quoted string */ ++ if ((quote_start = strchr (line, '"')) != NULL) ++ quote_end = strrchr (quote_start + 1, '"'); ++ if ((comment = strchr ((quote_end != NULL) ? ++ quote_end : line, '#')) != NULL) ++ *comment = '\0'; + if (strstr (line, "}") != NULL) + complete = TRUE; + add_key_value (network, line); +-- +1.7.8.4 + |