2003-02-21 Anders Carlsson <andersca@codefactory.se>
authorAnders Carlsson <andersca@codefactory.se>
Fri, 21 Feb 2003 18:45:08 +0000 (18:45 +0000)
committerAnders Carlsson <andersca@codefactory.se>
Fri, 21 Feb 2003 18:45:08 +0000 (18:45 +0000)
* dbus/dbus-message.c: (dbus_message_append_nil),
(dbus_message_append_int32), (dbus_message_append_uint32),
(dbus_message_append_double), (dbus_message_append_string),
(dbus_message_append_int32_array),
(dbus_message_append_uint32_array),
(dbus_message_append_double_array),
(dbus_message_append_byte_array),
(dbus_message_append_string_array):
Fix all out-of-memory handling in these functions.

ChangeLog
dbus/dbus-message.c

index 34949aa..49db62a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
 
+       * dbus/dbus-message.c: (dbus_message_append_nil),
+       (dbus_message_append_int32), (dbus_message_append_uint32),
+       (dbus_message_append_double), (dbus_message_append_string),
+       (dbus_message_append_int32_array),
+       (dbus_message_append_uint32_array),
+       (dbus_message_append_double_array),
+       (dbus_message_append_byte_array),
+       (dbus_message_append_string_array):
+       Fix all out-of-memory handling in these functions.
+
+2003-02-21  Anders Carlsson  <andersca@codefactory.se>
+
+       * dbus/dbus-message.c: (dbus_message_append_nil):
+       Fix a silly.
+       
+2003-02-21  Anders Carlsson  <andersca@codefactory.se>
+
        * dbus/dbus-message.c: (dbus_message_append_args_valist),
        (dbus_message_append_nil), (dbus_message_append_int32_array),
        (dbus_message_append_uint32_array),
@@ -11,6 +28,7 @@
        (dbus_message_iter_get_double_array),
        (dbus_message_iter_get_byte_array),
        (dbus_message_iter_get_string_array):
+
        * dbus/dbus-message.h:
        Add functions for appending and getting arrays.
        
index 54573ff..0c6b72d 100644 (file)
@@ -1151,12 +1151,9 @@ dbus_message_append_nil (DBusMessage *message)
   _dbus_assert (!message->locked);
 
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_NIL))
-    {
-      _dbus_string_shorten (&message->body, 1);
       return FALSE;
-    }
-
-  return TRUE;
+  else
+    return TRUE;
 }
 
 /**
@@ -1173,13 +1170,15 @@ dbus_message_append_int32 (DBusMessage  *message,
   _dbus_assert (!message->locked);
 
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_INT32))
+      return FALSE;
+  
+  if (!_dbus_marshal_int32 (&message->body, message->byte_order, value))
     {
       _dbus_string_shorten (&message->body, 1);
       return FALSE;
     }
-  
-  return _dbus_marshal_int32 (&message->body,
-                             message->byte_order, value);
+
+  return TRUE;
 }
 
 /**
@@ -1196,13 +1195,15 @@ dbus_message_append_uint32 (DBusMessage   *message,
   _dbus_assert (!message->locked);
 
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_UINT32))
+      return FALSE;
+  
+  if (!_dbus_marshal_uint32 (&message->body, message->byte_order, value))
     {
       _dbus_string_shorten (&message->body, 1);
       return FALSE;
     }
-  
-  return _dbus_marshal_uint32 (&message->body,
-                              message->byte_order, value);
+
+  return TRUE;      
 }
 
 /**
@@ -1219,13 +1220,15 @@ dbus_message_append_double (DBusMessage *message,
   _dbus_assert (!message->locked);
 
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_DOUBLE))
+    return FALSE;
+
+  if (!_dbus_marshal_double (&message->body, message->byte_order, value))
     {
       _dbus_string_shorten (&message->body, 1);
       return FALSE;
     }
   
-  return _dbus_marshal_double (&message->body,
-                              message->byte_order, value);
+  return TRUE;
 }
 
 /**
@@ -1242,13 +1245,15 @@ dbus_message_append_string (DBusMessage *message,
   _dbus_assert (!message->locked);
 
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_STRING))
+      return FALSE;
+  
+  if (!_dbus_marshal_string (&message->body, message->byte_order, value))
     {
       _dbus_string_shorten (&message->body, 1);
-      return FALSE;
+      return FALSE;      
     }
-  
-  return _dbus_marshal_string (&message->body,
-                              message->byte_order, value);
+
+  return TRUE;
 }
 
 /**
@@ -1264,23 +1269,18 @@ dbus_message_append_int32_array (DBusMessage        *message,
                                 const dbus_int32_t *value,
                                 int                 len)
 {
-  int old_len;
-
   _dbus_assert (!message->locked);
 
-  old_len = _dbus_string_get_length (&message->body);
-
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_INT32_ARRAY))
-    goto enomem;
+    return FALSE;
 
   if (!_dbus_marshal_int32_array (&message->body, message->byte_order,
                                  value, len))
-    goto enomem;
-
-  return TRUE;
+    {
+      _dbus_string_shorten (&message->body, 1);
+      return FALSE;
+    }
 
- enomem:
-  _dbus_string_set_length (&message->body, old_len);
   return TRUE;
 }
 
@@ -1297,23 +1297,18 @@ dbus_message_append_uint32_array (DBusMessage         *message,
                                  const dbus_uint32_t *value,
                                  int                  len)
 {
-  int old_len;
-
   _dbus_assert (!message->locked);
 
-  old_len = _dbus_string_get_length (&message->body);
-
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_UINT32_ARRAY))
-    goto enomem;
+    return FALSE;
 
   if (!_dbus_marshal_uint32_array (&message->body, message->byte_order,
                                  value, len))
-    goto enomem;
-
-  return TRUE;
+    {
+      _dbus_string_shorten (&message->body, 1);
+      return FALSE;
+    }
 
- enomem:
-  _dbus_string_set_length (&message->body, old_len);
   return TRUE;
 }
 
@@ -1330,24 +1325,19 @@ dbus_message_append_double_array (DBusMessage  *message,
                                  const double *value,
                                  int           len)
 {
-  int old_len;
-
   _dbus_assert (!message->locked);
 
-  old_len = _dbus_string_get_length (&message->body);
-
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_DOUBLE_ARRAY))
-    goto enomem;
+    return FALSE;
 
   if (!_dbus_marshal_double_array (&message->body, message->byte_order,
                                   value, len))
-    goto enomem;
+    {
+      _dbus_string_shorten (&message->body, 1);
+      return FALSE;
+    }
 
   return TRUE;
-
- enomem:
-  _dbus_string_set_length (&message->body, old_len);
-  return TRUE;  
 }
 
 /**
@@ -1363,23 +1353,18 @@ dbus_message_append_byte_array (DBusMessage         *message,
                                unsigned const char *value,
                                int                 len)
 {
-  int old_len;
-  
   _dbus_assert (!message->locked);
 
-  old_len = _dbus_string_get_length (&message->body);
-  
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_BYTE_ARRAY))
-      goto enomem;
+    return FALSE;
   
   if (!_dbus_marshal_byte_array (&message->body, message->byte_order, value, len))
-    goto enomem;
-
+    {
+      _dbus_string_shorten (&message->body, 1);
+      return FALSE;
+    }
+      
   return TRUE;
-  
- enomem:
-  _dbus_string_set_length (&message->body, old_len);
-  return FALSE;
 }
 
 /**
@@ -1395,24 +1380,19 @@ dbus_message_append_string_array (DBusMessage *message,
                                  const char **value,
                                  int          len)
 {
-  int old_len;
-
   _dbus_assert (!message->locked);
 
-  old_len = _dbus_string_get_length (&message->body);
-
   if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_STRING_ARRAY))
-    goto enomem;
+    return FALSE;
 
   if (!_dbus_marshal_string_array (&message->body, message->byte_order,
                                   value, len))
-    goto enomem;
+    {
+      _dbus_string_shorten (&message->body, 1);
+      return FALSE;
+    }
 
   return TRUE;
-
- enomem:
-  _dbus_string_set_length (&message->body, old_len);
-  return FALSE;
 }
 
 /**