mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Furthet tweak to RRset sort.
This commit is contained in:
22
src/dnssec.c
22
src/dnssec.c
@@ -233,8 +233,11 @@ static void sort_rrset(struct dns_header *header, size_t plen, u16 *rr_desc, int
|
||||
|
||||
dp1 = dp2 = rr_desc;
|
||||
|
||||
for (quit = 0, left1 = 0, left2 = 0; !quit;)
|
||||
for (quit = 0, left1 = 0, left2 = 0, len1 = 0, len2 = 0; !quit;)
|
||||
{
|
||||
if (left1 != 0)
|
||||
memmove(buff1, buff1 + len1 - left1, left1);
|
||||
|
||||
if ((len1 = get_rdata(header, plen, end1, buff1 + left1, &p1, &dp1)) == 0)
|
||||
{
|
||||
quit = 1;
|
||||
@@ -243,6 +246,9 @@ static void sort_rrset(struct dns_header *header, size_t plen, u16 *rr_desc, int
|
||||
}
|
||||
len1 += left1;
|
||||
|
||||
if (left2 != 0)
|
||||
memmove(buff2, buff2 + len2 - left2, left2);
|
||||
|
||||
if ((len2 = get_rdata(header, plen, end2, buff2 + left2, &p2, &dp2)) == 0)
|
||||
{
|
||||
quit = 1;
|
||||
@@ -252,21 +258,13 @@ static void sort_rrset(struct dns_header *header, size_t plen, u16 *rr_desc, int
|
||||
len2 += left2;
|
||||
|
||||
if (len1 > len2)
|
||||
{
|
||||
left1 = len1 - len2;
|
||||
left2 = 0;
|
||||
len = len2;
|
||||
}
|
||||
left1 = len1 - len2, left2 = 0, len = len2;
|
||||
else
|
||||
{
|
||||
left2 = len2 - len1;
|
||||
left1 = 0;
|
||||
len = len1;
|
||||
}
|
||||
left2 = len2 - len1, left1 = 0, len = len1;
|
||||
|
||||
rc = memcmp(buff1, buff2, len);
|
||||
|
||||
if (rc == 1 || (rc == 0 && quit && len2 > len1))
|
||||
if (rc == 1 || (rc == 0 && quit && len1 > len2))
|
||||
{
|
||||
unsigned char *tmp = rrset[i+1];
|
||||
rrset[i+1] = rrset[i];
|
||||
|
||||
Reference in New Issue
Block a user