Warn if the input is too short. (#418862, Halton Huo)
authorMatthias Clasen <mclasen@redhat.com>
Fri, 16 Mar 2007 19:50:14 +0000 (19:50 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 16 Mar 2007 19:50:14 +0000 (19:50 +0000)
2007-03-16  Matthias Clasen  <mclasen@redhat.com>

        * glib/gbase64.c (g_base64_decode): Warn if the input
        is too short.  (#418862, Halton Huo)

svn path=/trunk/; revision=5417

ChangeLog
glib/gbase64.c

index c4a3f8e..8aa77ce 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-16  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib/gbase64.c (g_base64_decode): Warn if the input
+       is too short.  (#418862, Halton Huo)
+
 Fri Mar 16 11:24:51 2007  Tim Janik  <timj@imendio.com>
 
        * glib/gscanner.[hc]: reverted premature commit which broke
@@ -10,6 +15,11 @@ Fri Mar 16 11:24:51 2007  Tim Janik  <timj@imendio.com>
 
 2007-03-15  Matthias Clasen  <mclasen@redhat.com>
 
+       * glib/gscanner.[hc]: Revert recent changes that break
+       existing users of GScanner.
+
+2007-03-15  Matthias Clasen  <mclasen@redhat.com>
+
        * glib/gscanner.c (g_scanner_get_token_ll): Fix a typo
        in the last commit.  (#415323, Richard Hult)
 
index c6902b2..f45df1e 100644 (file)
@@ -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; 
 }