snoopy: fix dns nil pointer crashes when formating dns packets (thanks sl)
snoopy shares ndb/dns's dns parser code, but has its own copy of rralloc() function, which is responsible to allocating auxiolary data structures on an RR depending on the type. ndb/dns gained some support for some new types, but snoopy's copy of rralloc() was not updated, resulting the auxiolary structures to be nil, and the shared parsing routines crashes when trying to dereference them. this just syncs the copies, we might consider moving rralloc() into its own file so it can be completely shared.
This commit is contained in:
parent
b0ae37013c
commit
97c6a1dd52
1 changed files with 5 additions and 0 deletions
|
@ -430,10 +430,15 @@ rralloc(int type)
|
||||||
rp->srv = emalloc(sizeof(*rp->srv));
|
rp->srv = emalloc(sizeof(*rp->srv));
|
||||||
setmalloctag(rp->srv, rp->pc);
|
setmalloctag(rp->srv, rp->pc);
|
||||||
break;
|
break;
|
||||||
|
case Tdnskey:
|
||||||
case Tkey:
|
case Tkey:
|
||||||
rp->key = emalloc(sizeof(*rp->key));
|
rp->key = emalloc(sizeof(*rp->key));
|
||||||
setmalloctag(rp->key, rp->pc);
|
setmalloctag(rp->key, rp->pc);
|
||||||
break;
|
break;
|
||||||
|
case Tcaa:
|
||||||
|
rp->caa = emalloc(sizeof(*rp->caa));
|
||||||
|
setmalloctag(rp->caa, rp->pc);
|
||||||
|
break;
|
||||||
case Tcert:
|
case Tcert:
|
||||||
rp->cert = emalloc(sizeof(*rp->cert));
|
rp->cert = emalloc(sizeof(*rp->cert));
|
||||||
setmalloctag(rp->cert, rp->pc);
|
setmalloctag(rp->cert, rp->pc);
|
||||||
|
|
Loading…
Reference in a new issue