diff --git a/src/network/kernel/qdnslookup_unix.cpp b/src/network/kernel/qdnslookup_unix.cpp index 0e10e8f928..7eeb6538a2 100644 --- a/src/network/kernel/qdnslookup_unix.cpp +++ b/src/network/kernel/qdnslookup_unix.cpp @@ -218,6 +218,7 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN } const quint16 type = (p[0] << 8) | p[1]; p += 2; // RR type + const qint16 rrclass = (p[0] << 8) | p[1]; p += 2; // RR class const quint32 ttl = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]; p += 4; @@ -225,6 +226,8 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN p += 2; if ((p - response) + size > responseLength) return; // truncated + if (rrclass != C_IN) + continue; if (type == QDnsLookup::A) { if (size != 4) {