diff options
author | 2007-03-23 14:15:09 +0000 | |
---|---|---|
committer | 2007-03-23 14:15:09 +0000 | |
commit | e70bf5142f1e2a79740b85532b8f31e86315422b (patch) | |
tree | f105e3ecc7df64185edb3c80c9b3505f576fb162 /sys-apps/ifplugd/files | |
parent | Version bump (diff) | |
download | historical-e70bf5142f1e2a79740b85532b8f31e86315422b.tar.gz historical-e70bf5142f1e2a79740b85532b8f31e86315422b.tar.bz2 historical-e70bf5142f1e2a79740b85532b8f31e86315422b.zip |
Fix aliasing QA, #171415.
Package-Manager: portage-2.1.2.2
Diffstat (limited to 'sys-apps/ifplugd/files')
-rw-r--r-- | sys-apps/ifplugd/files/digest-ifplugd-0.28-r8 | 3 | ||||
-rw-r--r-- | sys-apps/ifplugd/files/ifplugd-0.28-strictalias.patch | 63 |
2 files changed, 66 insertions, 0 deletions
diff --git a/sys-apps/ifplugd/files/digest-ifplugd-0.28-r8 b/sys-apps/ifplugd/files/digest-ifplugd-0.28-r8 new file mode 100644 index 000000000000..d58875572dca --- /dev/null +++ b/sys-apps/ifplugd/files/digest-ifplugd-0.28-r8 @@ -0,0 +1,3 @@ +MD5 df6f4bab52f46ffd6eb1f5912d4ccee3 ifplugd-0.28.tar.gz 142677 +RMD160 09914a1914a4432822bb660d6aef194debe688f1 ifplugd-0.28.tar.gz 142677 +SHA256 474754ac4ab32d738cbf2a4a3e87ee0a2c71b9048a38bdcd7df1e4f9fd6541f0 ifplugd-0.28.tar.gz 142677 diff --git a/sys-apps/ifplugd/files/ifplugd-0.28-strictalias.patch b/sys-apps/ifplugd/files/ifplugd-0.28-strictalias.patch new file mode 100644 index 000000000000..3c5de8a2e731 --- /dev/null +++ b/sys-apps/ifplugd/files/ifplugd-0.28-strictalias.patch @@ -0,0 +1,63 @@ +--- src/interface.c.orig 2007-03-23 13:29:40.000000000 +0000 ++++ src/interface.c 2007-03-23 13:30:05.000000000 +0000 +@@ -89,6 +89,10 @@ + + interface_status_t interface_detect_beat_mii(int fd, char *iface) { + struct ifreq ifr; ++ union { ++ caddr_t *data; ++ unsigned short *usz; ++ } ifd; + + if (interface_auto_up) + interface_up(fd, iface); +@@ -103,7 +107,8 @@ + return IFSTATUS_ERR; + } + +- ((unsigned short*) &ifr.ifr_data)[1] = 1; ++ ifd.data = &ifr.ifr_data; ++ *++ifd.usz = 1; + + if (ioctl(fd, SIOCGMIIREG, &ifr) == -1) { + if (interface_do_message) +@@ -112,12 +117,17 @@ + return IFSTATUS_ERR; + } + +- return (((unsigned short*) &ifr.ifr_data)[3] & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN; ++ ifd.usz += 2; ++ return (*ifd.usz & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN; + } + + interface_status_t interface_detect_beat_priv(int fd, char *iface) { + struct ifreq ifr; +- ++ union { ++ caddr_t *data; ++ unsigned short *usz; ++ } ifd; ++ + if (interface_auto_up) + interface_up(fd, iface); + +@@ -131,7 +141,8 @@ + return IFSTATUS_ERR; + } + +- ((unsigned short*) &ifr.ifr_data)[1] = 1; ++ ifd.data = &ifr.ifr_data; ++ *++ifd.usz = 1; + + if (ioctl(fd, SIOCDEVPRIVATE+1, &ifr) == -1) { + if (interface_do_message) +@@ -140,7 +151,8 @@ + return IFSTATUS_ERR; + } + +- return (((unsigned short*) &ifr.ifr_data)[3] & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN; ++ ifd.usz += 2; ++ return (*ifd.usz & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN; + } + + interface_status_t interface_detect_beat_ethtool(int fd, char *iface) { |