aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/shibari_packet_tdb_answer_query.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2026-05-26 06:02:50 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2026-05-26 06:02:50 +0000
commitfeffa899990da7d1d113894daaac6ed3d15031ad (patch)
tree6343fb3c53b584809317f30053e1172f69c8bb1c /src/server/shibari_packet_tdb_answer_query.c
parent27fbd3626d5507f458c1233f4b66df36a11d60c5 (diff)
downloadshibari-feffa899990da7d1d113894daaac6ed3d15031ad.tar.gz
fix wildcard handling (and also the bug we just introduced)
Diffstat (limited to 'src/server/shibari_packet_tdb_answer_query.c')
-rw-r--r--src/server/shibari_packet_tdb_answer_query.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/server/shibari_packet_tdb_answer_query.c b/src/server/shibari_packet_tdb_answer_query.c
index 74b08a2..a57eb79 100644
--- a/src/server/shibari_packet_tdb_answer_query.c
+++ b/src/server/shibari_packet_tdb_answer_query.c
@@ -62,7 +62,7 @@ unsigned int shibari_packet_tdb_answer_query (shibari_packet *pkt, cdb const *td
int r = shibari_tdb_read_entry(tdb, &state, &entry, ql.s + wildpos, ql.len - wildpos, qtype, !!wildpos, loc, stamp, &flagyxdomain) ;
if (r == -1) return 2 ;
if (!r) break ;
- if (!shibari_packet_add_rr(pkt, &entry, 0, wildpos, 2))
+ if (!shibari_packet_add_rr(pkt, &entry, 0, 0, 2))
{
pkt->hdr.tc = 1 ;
return 0 ;
@@ -77,8 +77,8 @@ unsigned int shibari_packet_tdb_answer_query (shibari_packet *pkt, cdb const *td
default : break ;
}
}
- if (pkt->hdr.counts.an || flagyxdomain) break ;
- wildpos += 1 + q->s[wildpos] ;
+ if (pkt->hdr.counts.an || flagyxdomain || (ql.s[wildpos] == 1 && ql.s[wildpos+1] == '*')) break ;
+ wildpos += 1 + ql.s[wildpos] ;
}
got: