]> git.kaiwu.me - nginx.git/commit
Resolver: protection from duplicate responses.
authorMaxim Dounin <mdounin@mdounin.ru>
Mon, 14 May 2012 09:13:45 +0000 (09:13 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Mon, 14 May 2012 09:13:45 +0000 (09:13 +0000)
commit7d863c0181064b08fa6b3816522551084fd91af5
tree894636d6ad982e90eb061e8b3c62a905f1a7d70e
parent0e3b423dc6c6653d600f4bf1687f0653be04a830
Resolver: protection from duplicate responses.

If we already had CNAME in resolver node (i.e. rn->cnlen and rn->u.cname
set), and got additional response with A record, it resulted in rn->cnlen
set and rn->u.cname overwritten by rn->u.addr (or rn->u.addrs), causing
segmentation fault later in ngx_resolver_free_node() on an attempt to free
overwritten rn->u.cname.  The opposite (i.e. CNAME got after A) might cause
similar problems as well.
src/core/ngx_resolver.c