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);
uint8_t v = *p;
*p = '\0';
- if (v)
+ if (v && p + v < &rdata_buffer[rdlength])
p += v + 1;
} while (*p);
break;