diff options
author | Owen Taylor <otaylor@gtk.org> | 1998-05-01 01:41:06 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1998-05-01 01:41:06 +0000 |
commit | 8435d348387df3d4b79a255d9a20047cdee24e6f (patch) | |
tree | c69fc1f8c264921ffd3e88cec889499033d873bb | |
parent | 0f0ede22ad748d755137e3d6eb5790dea7db1fc4 (diff) | |
download | gdk-pixbuf-8435d348387df3d4b79a255d9a20047cdee24e6f.tar.gz |
Check arguments more carefully, (gtk-draco-980423-1.patch;
Thu Apr 30 21:41:30 1998 Owen Taylor <otaylor@gtk.org>
* gstring.c : Check arguments more carefully,
(gtk-draco-980423-1.patch; ramsey@rhrk.uni-kl.de)
-rw-r--r-- | glib/ChangeLog | 5 | ||||
-rw-r--r-- | glib/gstring.c | 20 |
2 files changed, 21 insertions, 4 deletions
diff --git a/glib/ChangeLog b/glib/ChangeLog index 2ab8ab1f9..db954b739 100644 --- a/glib/ChangeLog +++ b/glib/ChangeLog @@ -1,3 +1,8 @@ +Thu Apr 30 21:41:30 1998 Owen Taylor <otaylor@gtk.org> + + * gstring.c : Check arguments more carefully, + (gtk-draco-980423-1.patch; ramsey@rhrk.uni-kl.de) + Tue Apr 7 19:36:48 1998 Owen Taylor <owt1@cornell.edu> * gutils.c (g_direct_compare): Removed, because that's what diff --git a/glib/gstring.c b/glib/gstring.c index fc0780e2b..e006415b8 100644 --- a/glib/gstring.c +++ b/glib/gstring.c @@ -254,8 +254,11 @@ GString* g_string_append (GString *fstring, gchar *val) { GRealString *string = (GRealString*)fstring; - int len = strlen (val); + int len; + g_return_val_if_fail (val != NULL, fstring); + + len = strlen (val); g_string_maybe_expand (string, len); strcpy (string->str + string->len, val); @@ -282,8 +285,11 @@ GString* g_string_prepend (GString *fstring, gchar *val) { GRealString *string = (GRealString*)fstring; - gint len = strlen (val); + gint len; + + g_return_val_if_fail (val != NULL, fstring); + len = strlen (val); g_string_maybe_expand (string, len); g_memmove (string->str + len, string->str, string->len); @@ -319,10 +325,13 @@ GString * g_string_insert (GString *fstring, gint pos, gchar *val) { GRealString *string = (GRealString*)fstring; - gint len = strlen (val); + gint len; + g_return_val_if_fail (val != NULL, fstring); + g_return_val_if_fail (pos >= 0, fstring); g_return_val_if_fail (pos <= string->len, fstring); + len = strlen (val); g_string_maybe_expand (string, len); g_memmove (string->str + pos + len, string->str + pos, string->len - pos); @@ -361,10 +370,13 @@ g_string_erase (GString *fstring, gint pos, gint len) { GRealString *string = (GRealString*)fstring; + g_return_val_if_fail (len >= 0, fstring); + g_return_val_if_fail (pos >= 0, fstring); g_return_val_if_fail (pos <= string->len, fstring); g_return_val_if_fail (pos + len <= string->len, fstring); - g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len)); + if (pos + len < string->len) + g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len)); string->len -= len; |