[lib-fix] Fixed message handling
authorSangyoon Jang <s89.jang@samsung.com>
Fri, 3 Jan 2014 06:35:57 +0000 (15:35 +0900)
committerSangyoon Jang <s89.jang@samsung.com>
Wed, 8 Jan 2014 08:37:49 +0000 (17:37 +0900)
the message which has only header(body size is 0) doesn't cause io_error now
(such as KDBUS_ITEM_REPLY_DEAD has 0 size body)
Change-Id: I7f0cece23c6aa88761dba979f82e8e33622bf600

dbus/dbus-transport-kdbus.c

index d590a02..72e3d56 100644 (file)
@@ -703,7 +703,7 @@ static int kdbus_message_size(const struct kdbus_msg* msg)
 
        KDBUS_PART_FOREACH(item, msg, items)
        {
-               if (item->size <= KDBUS_ITEM_HEADER_SIZE)
+               if (item->size < KDBUS_ITEM_HEADER_SIZE)
                {
                        _dbus_verbose("  +%s (%llu bytes) invalid data record\n", enum_MSG(item->type), item->size);
                        return -1;
@@ -743,7 +743,7 @@ static int kdbus_decode_msg(const struct kdbus_msg* msg, char *data, DBusTranspo
        DBusMessage *message = NULL;
        DBusMessageIter args;
        const char* emptyString = "";
-    const char* pString = NULL;
+       const char* pString = NULL;
        char dbus_name[(unsigned int)(snprintf((char*)pString, 0, ":1.%llu0", ULLONG_MAX))];
        const char* pDBusName = dbus_name;
 #if KDBUS_MSG_DECODE_DEBUG == 1
@@ -762,7 +762,7 @@ static int kdbus_decode_msg(const struct kdbus_msg* msg, char *data, DBusTranspo
 
        KDBUS_PART_FOREACH(item, msg, items)
        {
-               if (item->size <= KDBUS_ITEM_HEADER_SIZE)
+               if (item->size < KDBUS_ITEM_HEADER_SIZE)
                {
                        _dbus_verbose("  +%s (%llu bytes) invalid data record\n", enum_MSG(item->type), item->size);
                        break;  //??? continue (because dbus will find error) or break