chiark / gitweb /
bus-util: support mapping signed integers with bus_map_properties()
authorLennart Poettering <lennart@poettering.net>
Wed, 17 Aug 2016 17:00:12 +0000 (19:00 +0200)
committerSven Eden <yamakuzure@gmx.net>
Wed, 5 Jul 2017 06:50:51 +0000 (08:50 +0200)
Let's make sure we can read the exit code/status properties exposed by PID 1
properly. Let's reuse the existing code for unsigned fields, as we just use it
to copy words around, and don't calculate it.

src/shared/bus-util.c

index 5ea4e56087d3fd01b6310652a80dff2379db21d8..2af4dde34a1a5f0d6a878eba18631f258c88f721 100644 (file)
@@ -1063,29 +1063,27 @@ static int map_basic(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_
                 break;
         }
 
+        case SD_BUS_TYPE_INT32:
         case SD_BUS_TYPE_UINT32: {
-                uint32_t u;
-                uint32_t *p = userdata;
+                uint32_t u, *p = userdata;
 
                 r = sd_bus_message_read_basic(m, type, &u);
                 if (r < 0)
                         break;
 
                 *p = u;
-
                 break;
         }
 
+        case SD_BUS_TYPE_INT64:
         case SD_BUS_TYPE_UINT64: {
-                uint64_t t;
-                uint64_t *p = userdata;
+                uint64_t t, *p = userdata;
 
                 r = sd_bus_message_read_basic(m, type, &t);
                 if (r < 0)
                         break;
 
                 *p = t;
-
                 break;
         }