summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@gtk.org>1998-05-01 01:41:06 +0000
committerOwen Taylor <otaylor@src.gnome.org>1998-05-01 01:41:06 +0000
commit8435d348387df3d4b79a255d9a20047cdee24e6f (patch)
treec69fc1f8c264921ffd3e88cec889499033d873bb
parent0f0ede22ad748d755137e3d6eb5790dea7db1fc4 (diff)
downloadgdk-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/ChangeLog5
-rw-r--r--glib/gstring.c20
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;