Unbound 1.9.6rc1 pre-release
Paul Wouters
paul at nohats.ca
Fri Dec 6 00:18:06 UTC 2019
On Thu, 5 Dec 2019, Paul Wouters via Unbound-users wrote:
> Seems sldns_wire2str_ipseckey_scan() was changed from:
>
> int sldns_wire2str_ipseckey_scan(uint8_t** d, size_t* dl, char** s, size_t* sl,
> uint8_t* pkt, size_t pktlen)
>
> to:
>
> int sldns_wire2str_ipseckey_scan(uint8_t** d, size_t* dl, char** s, size_t*
> sl,
> uint8_t* pkt, size_t pktlen, int* comprloop)
>
> But the only call to it was not updated for the added argument comprloop.
>
> It looks like the variable is to prevent infinite cname/dname
> loops?
I was wrong :)
Seems to be handling name compression. I guess the variable name "dname"
in the code predates the DNAME RRTYPE :P
Since RFC 4025 for IPSECKEY states:
3 A wire-encoded domain name is present. The wire-encoded format is
self-describing, so the length is implicit. The domain name MUST
NOT be compressed. (See Section 3.3 of RFC 1035 [2].)
I guess we can just pass in an extra 0?
diff -Naur unbound-1.9.6rc1/ipsecmod/ipsecmod.c unbound-1.9.6rc1-new/ipsecmod/ipsecmod.c
--- unbound-1.9.6rc1/ipsecmod/ipsecmod.c 2019-12-05 10:26:37.000000000 +0000
+++ unbound-1.9.6rc1-new/ipsecmod/ipsecmod.c 2019-12-06 00:07:45.319917335 +0000
@@ -337,7 +337,7 @@
/* Save the buffer pointers. */
tempstring = s; tempstring_len = slen;
w_temp = sldns_wire2str_ipseckey_scan(&tempdata, &tempdata_len, &s,
- &slen, NULL, 0);
+ &slen, NULL, 0, 0);
/* There was an error when parsing the IPSECKEY; reset the buffer
* pointers to their previous values. */
if(w_temp == -1) {
diff -Naur unbound-1.9.6rc1/sldns/wire2str.c unbound-1.9.6rc1-new/sldns/wire2str.c
--- unbound-1.9.6rc1/sldns/wire2str.c 2019-12-05 10:26:37.000000000 +0000
+++ unbound-1.9.6rc1-new/sldns/wire2str.c 2019-12-06 00:08:14.938307559 +0000
@@ -1544,7 +1544,7 @@
static int sldns_wire2str_ipseckey_scan_internal(uint8_t** d, size_t* dl,
char** s, size_t* sl, uint8_t* pkt, size_t pktlen, int* comprloop)
{
- /* http://www.ietf.org/internet-drafts/draft-ietf-ipseckey-rr-12.txt*/
+ /* https://tools.ietf.org/html/rfc4025 */
uint8_t precedence, gateway_type, algorithm;
int w = 0;
Paul
More information about the Unbound-users
mailing list