mirror of
https://github.com/NLnetLabs/unbound.git
synced 2026-01-03 13:29:36 -05:00
fix memcpy of buffer for ech
This commit is contained in:
parent
5b28b213fa
commit
b61d098950
1 changed files with 7 additions and 8 deletions
|
|
@ -1206,8 +1206,8 @@ sldns_str2wire_svcbparam_no_default_alpn(const char* val, uint8_t* rd, size_t* r
|
|||
if (*rd_len < 4)
|
||||
return LDNS_WIREPARSE_ERR_BUFFER_TOO_SMALL;
|
||||
|
||||
sldns_write_uint16(rd, htons(SVCB_KEY_NO_DEFAULT_ALPN));
|
||||
sldns_write_uint16(rd + 2, htons(0));
|
||||
sldns_write_uint16(rd, SVCB_KEY_NO_DEFAULT_ALPN);
|
||||
sldns_write_uint16(rd + 2, 0);
|
||||
*rd_len = 4;
|
||||
|
||||
return LDNS_WIREPARSE_ERR_OK;
|
||||
|
|
@ -1229,14 +1229,13 @@ sldns_str2wire_svcbparam_ech_value(const char* val, uint8_t* rd, size_t* rd_len)
|
|||
if (wire_len == -1) {
|
||||
// zc_error_prev_line("invalid base64 data in ech");
|
||||
return LDNS_WIREPARSE_ERR_INVALID_STR;
|
||||
} else if (wire_len + 4 > *rd_len) {
|
||||
return LDNS_WIREPARSE_ERR_BUFFER_TOO_SMALL;
|
||||
} else {
|
||||
sldns_write_uint16(rd, htons(SVCB_KEY_ECH));
|
||||
sldns_write_uint16(rd + 2, htons(wire_len));
|
||||
|
||||
// @TODO memcpy?
|
||||
sldns_write_uint16(rd + 4, htons(buffer));
|
||||
sldns_write_uint16(rd, SVCB_KEY_ECH);
|
||||
sldns_write_uint16(rd + 2, wire_len);
|
||||
memcpy(rd + 4, buffer, wire_len);
|
||||
*rd_len = 4 + wire_len;
|
||||
|
||||
return LDNS_WIREPARSE_ERR_OK;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue