X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fmdnsd.git;a=blobdiff_plain;f=cache.c;h=812478e44de0664ee17ae0842b39bb674cf0632f;hp=e775537fedc5318e5bd8ef12a32d37486187c931;hb=4aef44b51650d62cd35964b75f9157389c538527;hpb=902e2d1eaaff0d3d33dee605a4746fd5d4b6b999 diff --git a/cache.c b/cache.c index e775537..812478e 100644 --- a/cache.c +++ b/cache.c @@ -167,7 +167,7 @@ cache_record_find(char *record, int type, int port, int rdlength, uint8_t *rdata if (!l) return NULL; - while (l && !strcmp(l->record, record)) { + while (l && l->record && !strcmp(l->record, record)) { struct cache_record *r = l; l = avl_next_element(l, avl); @@ -274,7 +274,7 @@ cache_answer(struct interface *iface, uint8_t *base, int blen, char *name, struc uint8_t v = *p; *p = '\0'; - if (v) + if (v && p + v < &rdata_buffer[rdlength]) p += v + 1; } while (*p); break;