summaryrefslogtreecommitdiff
path: root/egg
diff options
context:
space:
mode:
authorStef Walter <stefw@gnome.org>2013-01-11 21:48:23 +0100
committerStef Walter <stefw@gnome.org>2013-01-11 21:49:42 +0100
commit583d9cccdbd5fbd32c7faa67be7722002c6665b3 (patch)
treeba34781ef48b4cd2fe9044a779aa9c8e445869ef /egg
parentd8f77ed5610858874b751ba104a44484a0468299 (diff)
downloadgnome-keyring-583d9cccdbd5fbd32c7faa67be7722002c6665b3.tar.gz
egg-armor: Handle mismatched but not truncated suffix line
* Discovered by Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com> https://bugzilla.gnome.org/show_bug.cgi?id=691500
Diffstat (limited to 'egg')
-rw-r--r--egg/egg-armor.c2
-rw-r--r--egg/tests/test-armor.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/egg/egg-armor.c b/egg/egg-armor.c
index 7c788ade..acb56df0 100644
--- a/egg/egg-armor.c
+++ b/egg/egg-armor.c
@@ -173,7 +173,7 @@ armor_find_end (const gchar *data,
at += n_type;
/* Next comes the suffix */
- if (ARMOR_SUFF_L > len && strncmp ((gchar*)at, ARMOR_SUFF, ARMOR_SUFF_L) != 0)
+ if (ARMOR_SUFF_L > len || strncmp ((gchar *)at, ARMOR_SUFF, ARMOR_SUFF_L) != 0)
return NULL;
/*
diff --git a/egg/tests/test-armor.c b/egg/tests/test-armor.c
index d5a366b7..7435a109 100644
--- a/egg/tests/test-armor.c
+++ b/egg/tests/test-armor.c
@@ -148,6 +148,11 @@ main (int argc, char **argv)
g_test_add_data_func ("/armor/invalid-suffix",
"-----BEGIN TEST-----\n"
"Z29vZCBtb3JuaW5nIGV2ZXJ5b25lCg==\n"
+ "-----END TEST--xxxxxxxx\n",
+ test_invalid);
+ g_test_add_data_func ("/armor/invalid-truncated",
+ "-----BEGIN TEST-----\n"
+ "Z29vZCBtb3JuaW5nIGV2ZXJ5b25lCg==\n"
"-----END TEST--\n",
test_invalid);