summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@csiro.au>2011-05-11 06:51:28 (GMT)
committerMartin Petersson <martin.petersson@nokia.com>2011-05-11 13:03:41 (GMT)
commit004ad12669ef696eeba70fd57d1eb0c67c806d1d (patch)
tree6e3f95cbf6869ebb48c24e0174dd2ac901f2860c /src
parent0c9cb9a34d6b472cb53bf1af4616af55b593b616 (diff)
downloadQt-004ad12669ef696eeba70fd57d1eb0c67c806d1d.zip
Qt-004ad12669ef696eeba70fd57d1eb0c67c806d1d.tar.gz
Qt-004ad12669ef696eeba70fd57d1eb0c67c806d1d.tar.bz2
Fix incorrect hardware address on systems without getifaddrs()
On unix systems for which QT_NO_GETIFADDRS is defined, the way that the hardware address field is extracted from the result of a call to qt_safe_ioctl() is incorrect. The address of the ifreq.ifr_addr struct is taken rather than the appropriate member within that struct, sa_data, resulting in a memory offset and subsequently the hardware address has garbage in the first two of six fields. This commit modifies the code to pass the sa_data member instead of the address of the struct as a whole. Task-number: QTBUG-19165 Merge-request: 2614 Reviewed-by: Martin Petersson
Diffstat (limited to 'src')
-rw-r--r--src/network/kernel/qnetworkinterface_unix.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/network/kernel/qnetworkinterface_unix.cpp b/src/network/kernel/qnetworkinterface_unix.cpp
index 6098bde..7f251a7 100644
--- a/src/network/kernel/qnetworkinterface_unix.cpp
+++ b/src/network/kernel/qnetworkinterface_unix.cpp
@@ -219,7 +219,7 @@ static QNetworkInterfacePrivate *findInterface(int socket, QList<QNetworkInterfa
#ifdef SIOCGIFHWADDR
// Get the HW address
if (qt_safe_ioctl(socket, SIOCGIFHWADDR, &req) >= 0) {
- uchar *addr = (uchar *)&req.ifr_addr;
+ uchar *addr = (uchar *)req.ifr_addr.sa_data;
iface->hardwareAddress = iface->makeHwAddress(6, addr);
}
#endif