Skip to content
Snippets Groups Projects
Commit 80f4e5cb authored by Lubos Slovak's avatar Lubos Slovak
Browse files

Fixed inserting RR owner pointer.

- Was trying to insert owner pointer also if it was larger than
  largest allowed pointer number. Fixed by inserting whole name
  if such position is encountered.
parent 2f3fd4ad
No related branches found
No related tags found
No related merge requests found
......@@ -266,15 +266,15 @@ static size_t knot_response_find_dname_pos(
const knot_dname_t *dname, int compr_cs)
{
for (int i = 0; i < table->count; ++i) {
debug_knot_response("Comparing dnames %p and %p\n",
dname, table->dnames[i]);
DEBUG_KNOT_RESPONSE(
char *name = knot_dname_to_str(dname);
debug_knot_response("(%s and ", name);
name = knot_dname_to_str(table->dnames[i]);
debug_knot_response("%s)\n", name);
free(name);
);
// debug_knot_response("Comparing dnames %p and %p\n",
// dname, table->dnames[i]);
//DEBUG_KNOT_RESPONSE(
// char *name = knot_dname_to_str(dname);
// debug_knot_response("(%s and ", name);
// name = knot_dname_to_str(table->dnames[i]);
// debug_knot_response("%s)\n", name);
// free(name);
//);
//if (table->dnames[i] == dname) {
int ret = (compr_cs)
? knot_dname_compare_cs(table->dnames[i], dname)
......@@ -492,7 +492,7 @@ static int knot_response_rr_to_wire(const knot_rrset_t *rrset,
debug_knot_response("Owner position: %zu\n", compr->owner.pos);
// put owner if needed (already compressed)
if (compr->owner.pos == 0) {
if (compr->owner.pos == 0 || compr->owner.pos > KNOT_RESPONSE_MAX_PTR) {
memcpy(*rrset_wire, compr->owner.wire, compr->owner.size);
compr->owner.pos = compr->wire_pos;
*rrset_wire += compr->owner.size;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment