chiark / gitweb /
rtnl: correctly get the size of data to be appended
authorTom Gundersen <teg@jklm.no>
Thu, 19 Dec 2013 20:28:50 +0000 (21:28 +0100)
committerTom Gundersen <teg@jklm.no>
Thu, 19 Dec 2013 20:39:45 +0000 (21:39 +0100)
This fixes:
  systemd[1]: Failed to configure loopback device: Numerical result out of range

src/libsystemd-rtnl/rtnl-message.c

index c62eca9fae33cf38c9ea6e9b0b9c52d36da64678..24f2e6f2466220ef386301c4c29709dc4c21a91a 100644 (file)
@@ -447,7 +447,7 @@ int sd_rtnl_message_append_u32(sd_rtnl_message *m, unsigned short type, uint32_t
                         return -ENOTSUP;
         }
 
-        r = add_rtattr(m, type, &data, sizeof(&data));
+        r = add_rtattr(m, type, &data, sizeof(uint32_t));
         if (r < 0)
                 return r;
 
@@ -508,7 +508,7 @@ int sd_rtnl_message_append_in_addr(sd_rtnl_message *m, unsigned short type, cons
                         return -ENOTSUP;
         }
 
-        r = add_rtattr(m, type, data, sizeof(data));
+        r = add_rtattr(m, type, data, sizeof(struct in_addr));
         if (r < 0)
                 return r;
 
@@ -568,7 +568,7 @@ int sd_rtnl_message_append_in6_addr(sd_rtnl_message *m, unsigned short type, con
                         return -ENOTSUP;
         }
 
-        r = add_rtattr(m, type, data, sizeof(data));
+        r = add_rtattr(m, type, data, sizeof(struct in6_addr));
         if (r < 0)
                 return r;