Skip to content

Commit f94f92f

Browse files
committed
Fix a couple of decoding bugs
1 parent 37a5ddc commit f94f92f

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

src/LibDNS/Decoder/Decoder.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ private function decodeHeader(DecodingContext $decodingContext, Message $message
134134

135135
$message->setID($header['id']);
136136

137-
$message->setType(($header['meta'] & 0b1000000000000000) >> 16);
137+
$message->setType(($header['meta'] & 0b1000000000000000) >> 15);
138138
$message->setOpCode(($header['meta'] & 0b0111100000000000) >> 11);
139139
$message->isAuthoritative(($header['meta'] & 0b0000010000000000) >> 10);
140140
$message->isTruncated(($header['meta'] & 0b0000001000000000) >> 9);
@@ -240,8 +240,7 @@ private function decodeDomainName(DecodingContext $decodingContext, DomainName $
240240
$labels = [];
241241
$totalLength = 0;
242242

243-
while ($length = ord($this->readDataFromPacket($packet, 1))) {
244-
$totalLength++;
243+
while (++$totalLength && $length = ord($this->readDataFromPacket($packet, 1))) {
245244
$labelType = $length & 0b11000000;
246245

247246
if ($labelType === 0b00000000) {

0 commit comments

Comments
 (0)