chiark / gitweb /
nss-myhostname: copy first result to preallocated buffer
authorEelco Dolstra <eelco.dolstra@logicblox.com>
Mon, 4 Feb 2013 14:56:26 +0000 (15:56 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 7 Feb 2013 06:02:33 +0000 (01:02 -0500)
commitd2f1f23ad2636cf05589a67b5229c7fd604bc21f
tree96d3821b0e03230b6797b7c8cf5665e62df2cb9d
parent13219b7f74cb2722746b953bbec7593d5cc665e3
nss-myhostname: copy first result to preallocated buffer

Fixes a segfault in nscd when using nss-myhostname.

Nscd expects that an NSS module's gethostbyname4_r function returns
its first result in the pre-allocated gaih_addrtuple denoted by **pat.
(See nscd/aicache.c in the Glibc sources.)  However, nss-myhostname
doesn't fill in **pat but allocates the first result in ‘buffer’, then
sets *pat.  So nscd crashes (e.g. when running ‘getent ahosts
my-machine’).

Hard to tell if this is a bug in nscd, since there doesn't seem to be
a proper API spec for gethostbyname4_r.  But in any case, this patch
fixes the crash by copying the first result to **pat.
src/nss-myhostname/nss-myhostname.c