From: Tom Gundersen Date: Thu, 19 Dec 2013 20:28:50 +0000 (+0100) Subject: rtnl: correctly get the size of data to be appended X-Git-Tag: v209~797 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=4d47756b8fa5eb6bc75b7aa2345eb31e6bc10e9a rtnl: correctly get the size of data to be appended This fixes: systemd[1]: Failed to configure loopback device: Numerical result out of range --- diff --git a/src/libsystemd-rtnl/rtnl-message.c b/src/libsystemd-rtnl/rtnl-message.c index c62eca9fa..24f2e6f24 100644 --- a/src/libsystemd-rtnl/rtnl-message.c +++ b/src/libsystemd-rtnl/rtnl-message.c @@ -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;