diff options
Diffstat (limited to 'src/network/kernel/qdnslookup_unix.cpp')
-rw-r--r-- | src/network/kernel/qdnslookup_unix.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
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) { |