diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-08-01 16:01:12 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-08-01 16:06:39 +0200 |
commit | e70df46b9721a3d025e7a0b4ffb5893cbde5e55d (patch) | |
tree | 5f0381818f32f5c3ac0d7abda63181cc6451a92f /src/nss-myhostname | |
parent | Revert "networkd: don't assume udev_device_new_from_device_id sets errno" (diff) | |
download | systemd-e70df46b9721a3d025e7a0b4ffb5893cbde5e55d.tar.xz systemd-e70df46b9721a3d025e7a0b4ffb5893cbde5e55d.zip |
nss: always explicitly reset all error variables
glibc appears to be broken if we don't explicitly reset all error
variables, let's work around that.
https://bugzilla.redhat.com/show_bug.cgi?id=1125975
Diffstat (limited to 'src/nss-myhostname')
-rw-r--r-- | src/nss-myhostname/nss-myhostname.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c index bf1e311137..08d70f6c0d 100644 --- a/src/nss-myhostname/nss-myhostname.c +++ b/src/nss-myhostname/nss-myhostname.c @@ -165,6 +165,11 @@ enum nss_status _nss_myhostname_gethostbyname4_r( if (ttlp) *ttlp = 0; + /* Explicitly reset all error variables */ + *errnop = 0; + *h_errnop = NETDB_SUCCESS; + h_errno = 0; + return NSS_STATUS_SUCCESS; } @@ -289,6 +294,11 @@ static enum nss_status fill_in_hostent( if (canonp) *canonp = r_name; + /* Explicitly reset all error variables */ + *errnop = 0; + *h_errnop = NETDB_SUCCESS; + h_errno = 0; + return NSS_STATUS_SUCCESS; } |