diff options
author | Andre Heinecke <aheinecke@intevation.de> | 2014-11-24 10:59:32 +0100 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2014-11-25 22:51:45 -0500 |
commit | d9786d74db9238d480d65adcc030586b710b6043 (patch) | |
tree | 7d7f466dbe5300ff83c360da85f1c5c2a1b6e860 /modules | |
parent | 246c172e1e9eb9e815c262a83fefed0ed4d89c05 (diff) | |
download | gtk+-d9786d74db9238d480d65adcc030586b710b6043.tar.gz |
Remove overzealous validity check for secrets
We directly get the length of the secret from the g_variant
and use it in a following g_strndup which ensures that the
resulting string is terminated.
This fixes reading secrets which were stored by system-config-printer.
https://bugzilla.gnome.org/show_bug.cgi?id=740612
Diffstat (limited to 'modules')
-rw-r--r-- | modules/printbackends/cups/gtkcupssecretsutils.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/modules/printbackends/cups/gtkcupssecretsutils.c b/modules/printbackends/cups/gtkcupssecretsutils.c index 895e4bbcdb..7c5f374491 100644 --- a/modules/printbackends/cups/gtkcupssecretsutils.c +++ b/modules/printbackends/cups/gtkcupssecretsutils.c @@ -200,10 +200,9 @@ get_secret_cb (GObject *source_object, g_variant_unref (secret); - if (ba_passwd == NULL || strlen (ba_passwd) > len + 1) + if (ba_passwd == NULL) { - /* No secret or the secret is not a zero terminated value */ - GTK_NOTE (PRINTING, g_print ("Invalid secret.\n")); + GTK_NOTE (PRINTING, g_print ("Invalid / no secret found.\n")); g_variant_unref (s_value); goto fail; } |