mirror of
https://github.com/NLnetLabs/unbound.git
synced 2026-09-12 12:57:42 +02:00
- improve dname_has_label(), add unit test
This commit is contained in:
+10
-2
@@ -562,12 +562,20 @@ int
|
||||
dname_has_label(uint8_t* dname, size_t dnamelen, uint8_t* label)
|
||||
{
|
||||
size_t len = *dname;
|
||||
while(*dname && len <= dnamelen) {
|
||||
if(*dname == *label && memlowercmp(dname+1, label+1, *dname) == 0)
|
||||
while(len <= dnamelen) {
|
||||
if(!(*dname)) {
|
||||
if(*dname == *label)
|
||||
return 1; /* empty label match */
|
||||
/* termination label found, stop iterating */
|
||||
return 0;
|
||||
}
|
||||
if(*dname == *label && *label &&
|
||||
memlowercmp(dname+1, label+1, *dname) == 0)
|
||||
return 1;
|
||||
len += *dname;
|
||||
dname += *dname;
|
||||
dname++;
|
||||
len++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user