From d62b406c3883fa2c73e4af07af169a87672e614b Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 16 Mar 2007 19:54:33 +0000 Subject: [PATCH] Warn if the input is too short. (#418862, Halton Huo) 2007-03-16 Matthias Clasen * glib/gbase64.c (g_base64_decode): Warn if the input is too short. (#418862, Halton Huo) svn path=/branches/glib-2-12/; revision=5418 --- ChangeLog | 7 +++++++ glib/gbase64.c | 11 +++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1c3d6c171..51675c99f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-03-16 Matthias Clasen + + Merge from trunk: + + * glib/gbase64.c (g_base64_decode): Warn if the input + is too short. (#418862, Halton Huo) + 2007-03-08 Matthias Clasen * === Released 2.12.11 === diff --git a/glib/gbase64.c b/glib/gbase64.c index c6902b2e2..f45df1e6c 100644 --- a/glib/gbase64.c +++ b/glib/gbase64.c @@ -358,16 +358,19 @@ g_base64_decode (const gchar *text, gsize *out_len) { guchar *ret; - gint inlen, state = 0; + gint input_length, state = 0; guint save = 0; g_return_val_if_fail (text != NULL, NULL); g_return_val_if_fail (out_len != NULL, NULL); - inlen = strlen (text); - ret = g_malloc0 (inlen * 3 / 4); + input_length = strlen (text); + + g_return_val_if_fail (input_length > 1, NULL); + + ret = g_malloc0 (input_length * 3 / 4); - *out_len = g_base64_decode_step (text, inlen, ret, &state, &save); + *out_len = g_base64_decode_step (text, input_length, ret, &state, &save); return ret; }