]> git.frustrated-labs.net Git - dns-phrasex.git/commitdiff
fix: handle empty NAME in first question
authorAlexander Goussas <[email protected]>
Mon, 2 Feb 2026 03:46:45 +0000 (22:46 -0500)
committerAlexander Goussas <[email protected]>
Mon, 2 Feb 2026 03:46:45 +0000 (22:46 -0500)
lib/dns_phrases/message/parser.ex

index f2ad6157c2ef4aa6179f9c2777f460c99b158c2e..cd3dab9c4ebcfb0a48fe017578963f63357b11fe 100644 (file)
@@ -44,6 +44,16 @@ defmodule DnsPhrases.Message.Parser do
   def parse_question(data), do: parse_question(data, [])
 
   @spec parse_question(bitstring, list) :: {list(), integer(), integer()}
+
+  # This one executes on an NS record with zero-length NAME in the first question.
+  defp parse_question(
+         <<0::8, type::integer-size(16), class::integer-size(16), _rest::bitstring>>,
+         parts
+       ) do
+    {parts, type, class}
+  end
+
+  # This one executes for non zero-length NAME
   defp parse_question(
          <<n::integer-size(8), data::bitstring-size(n * 8), 0::8, type::integer-size(16),
            class::integer-size(16), _rest::bitstring>>,