From 36a8586ddfca3b825704eedda81c81ac8d653f1e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 6 Mar 1998 08:52:47 +0000 Subject: Update. 1998-03-06 Andreas Jaeger * nis/nis_call.c (__do_niscall): Safe and reset errno. * nis/ypclnt.c (__yp_bind): Safe and reset errno. --- nis/ypclnt.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'nis/ypclnt.c') diff --git a/nis/ypclnt.c b/nis/ypclnt.c index 9b936457a5..924a6293f1 100644 --- a/nis/ypclnt.c +++ b/nis/ypclnt.c @@ -104,6 +104,7 @@ __yp_bind (const char *domain, dom_binding **ypdb) struct iovec vec[2]; u_short port; int fd; + int saved_errno = errno; sprintf (path, "%s/%s.%ld", BINDINGDIR, domain, YPBINDVERS); fd = open (path, O_RDONLY); @@ -132,17 +133,20 @@ __yp_bind (const char *domain, dom_binding **ypdb) } close (fd); } + __set_errno (saved_errno); } #endif /* USE_BINDINGDIR */ if (ysd->dom_vers == -1) - { - if(ysd->dom_client) - { - clnt_destroy(ysd->dom_client); - ysd->dom_client = NULL; - ysd->dom_socket = -1; - } + { + int saved_errno = errno; + + if(ysd->dom_client) + { + clnt_destroy(ysd->dom_client); + ysd->dom_client = NULL; + ysd->dom_socket = -1; + } memset (&clnt_saddr, '\0', sizeof clnt_saddr); clnt_saddr.sin_family = AF_INET; clnt_saddr.sin_addr.s_addr = htonl (INADDR_LOOPBACK); @@ -153,6 +157,7 @@ __yp_bind (const char *domain, dom_binding **ypdb) { if (is_new) free (ysd); + __set_errno (saved_errno); return YPERR_YPBIND; } /* @@ -165,6 +170,7 @@ __yp_bind (const char *domain, dom_binding **ypdb) clnt_destroy (client); if (is_new) free (ysd); + __set_errno (saved_errno); return YPERR_YPBIND; } -- cgit v1.2.3