svn commit: r315015 - stable/11/lib/libc/net
Mark Johnston
markj at FreeBSD.org
Fri Mar 10 18:56:25 UTC 2017
Author: markj
Date: Fri Mar 10 18:56:23 2017
New Revision: 315015
URL: https://svnweb.freebsd.org/changeset/base/315015
Log:
MFC r313748, r313749:
Register nss_atexit() before parsing nsswitch.conf for the first time.
Modified:
stable/11/lib/libc/net/nsdispatch.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/lib/libc/net/nsdispatch.c
==============================================================================
--- stable/11/lib/libc/net/nsdispatch.c Fri Mar 10 18:54:48 2017 (r315014)
+++ stable/11/lib/libc/net/nsdispatch.c Fri Mar 10 18:56:23 2017 (r315015)
@@ -349,20 +349,20 @@ nss_configure(void)
path = getenv("NSSWITCH_CONF");
if (path == NULL)
#endif
- path = _PATH_NS_CONF;
+ path = _PATH_NS_CONF;
if (stat(path, &statbuf) != 0)
return (0);
if (statbuf.st_mtime <= confmod)
return (0);
if (isthreaded) {
- (void)_pthread_rwlock_unlock(&nss_lock);
- result = _pthread_rwlock_wrlock(&nss_lock);
- if (result != 0)
- return (result);
- if (stat(path, &statbuf) != 0)
- goto fin;
- if (statbuf.st_mtime <= confmod)
- goto fin;
+ (void)_pthread_rwlock_unlock(&nss_lock);
+ result = _pthread_rwlock_wrlock(&nss_lock);
+ if (result != 0)
+ return (result);
+ if (stat(path, &statbuf) != 0)
+ goto fin;
+ if (statbuf.st_mtime <= confmod)
+ goto fin;
}
_nsyyin = fopen(path, "re");
if (_nsyyin == NULL)
@@ -371,27 +371,27 @@ nss_configure(void)
(vector_free_elem)ns_dbt_free);
VECTOR_FREE(_nsmod, &_nsmodsize, sizeof(*_nsmod),
(vector_free_elem)ns_mod_free);
+ if (confmod == 0)
+ (void)atexit(nss_atexit);
nss_load_builtin_modules();
_nsyyparse();
(void)fclose(_nsyyin);
vector_sort(_nsmap, _nsmapsize, sizeof(*_nsmap), string_compare);
- if (confmod == 0)
- (void)atexit(nss_atexit);
confmod = statbuf.st_mtime;
#ifdef NS_CACHING
handle = libc_dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);
if (handle != NULL) {
nss_cache_cycle_prevention_func = dlsym(handle,
- "_nss_cache_cycle_prevention_function");
+ "_nss_cache_cycle_prevention_function");
dlclose(handle);
}
#endif
fin:
if (isthreaded) {
- (void)_pthread_rwlock_unlock(&nss_lock);
- if (result == 0)
- result = _pthread_rwlock_rdlock(&nss_lock);
+ (void)_pthread_rwlock_unlock(&nss_lock);
+ if (result == 0)
+ result = _pthread_rwlock_rdlock(&nss_lock);
}
return (result);
}
More information about the svn-src-stable
mailing list