diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2026-05-26 06:02:50 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2026-05-26 06:02:50 +0000 |
| commit | feffa899990da7d1d113894daaac6ed3d15031ad (patch) | |
| tree | 6343fb3c53b584809317f30053e1172f69c8bb1c /src/server/shibari_packet_tdb_answer_query.c | |
| parent | 27fbd3626d5507f458c1233f4b66df36a11d60c5 (diff) | |
| download | shibari-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.c | 6 |
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: |
