summaryrefslogtreecommitdiff
path: root/usr/src/lib/libnsl/ipsec/algs.c
diff options
context:
space:
mode:
authorcasper <none@none>2006-05-01 11:23:49 -0700
committercasper <none@none>2006-05-01 11:23:49 -0700
commit004388ebfdfe2ed7dfd2d153a876dfcc22d2c006 (patch)
tree9f3972760e2696f63065521871e50e1440bfbb75 /usr/src/lib/libnsl/ipsec/algs.c
parent0ade2cf005fcaecc5255dacf7d76683de855a9da (diff)
downloadillumos-joyent-004388ebfdfe2ed7dfd2d153a876dfcc22d2c006.tar.gz
4916205 libcmd should not use file operation routines from C library
6234782 Kerberos and GSSAPI should not use fopen 6259671 vold won't be killed by TERM signal when several removable devices are managed 6386770 pam_authenticate can fail if open files are >= 255 and the soft fd limit is greater than 256 6414401 Remove shadow stdio implementation obsoleted by PSARC 2006/162 6414404 __rpc_openchild never called and not exported by library 6416815 ON needs to be hardened against the 32-bit fopen/255 problem --HG-- rename : usr/src/lib/libnsl/common/nsl_stdio_prv.c => deleted_files/usr/src/lib/libnsl/common/nsl_stdio_prv.c rename : usr/src/lib/libnsl/include/nsl_stdio_prv.h => deleted_files/usr/src/lib/libnsl/include/nsl_stdio_prv.h rename : usr/src/lib/libnsl/rpc/openchild.c => deleted_files/usr/src/lib/libnsl/rpc/openchild.c rename : usr/src/lib/libnsl/rpc/xdr_stdio_prv.c => deleted_files/usr/src/lib/libnsl/rpc/xdr_stdio_prv.c rename : usr/src/lib/libresolv2/req.flg => deleted_files/usr/src/lib/libresolv2/req.flg rename : usr/src/lib/nsswitch/compat/req.flg => deleted_files/usr/src/lib/nsswitch/compat/req.flg rename : usr/src/lib/nsswitch/files/req.flg => deleted_files/usr/src/lib/nsswitch/files/req.flg rename : usr/src/lib/nsswitch/req.flg => deleted_files/usr/src/lib/nsswitch/req.flg rename : usr/src/lib/nsswitch/user/req.flg => deleted_files/usr/src/lib/nsswitch/user/req.flg
Diffstat (limited to 'usr/src/lib/libnsl/ipsec/algs.c')
-rw-r--r--usr/src/lib/libnsl/ipsec/algs.c43
1 files changed, 18 insertions, 25 deletions
diff --git a/usr/src/lib/libnsl/ipsec/algs.c b/usr/src/lib/libnsl/ipsec/algs.c
index c75f99a894..b3ce54206b 100644
--- a/usr/src/lib/libnsl/ipsec/algs.c
+++ b/usr/src/lib/libnsl/ipsec/algs.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -550,8 +549,8 @@ bail:
void
_build_internal_algs(ipsec_proto_t **alg_context, int *alg_nums)
{
- FILE *f = NULL;
- int fd, rc, trash_num;
+ FILE *f;
+ int rc, trash_num;
ipsec_proto_t *new_protos = NULL, *trash;
time_t filetime;
struct stat statbuf;
@@ -572,24 +571,21 @@ _build_internal_algs(ipsec_proto_t **alg_context, int *alg_nums)
(void) rw_wrlock(&proto_rw);
}
- fd = open(INET_IPSECALGSFILE, O_RDONLY);
- if (fd != -1) {
- f = fdopen(fd, "r");
- if (f == NULL) {
- (void) close(fd);
- } else {
- rc = fstat(fd, &statbuf);
- if (rc != -1) {
- /*
- * Update if the file is newer than our
- * last cached copy.
- */
- filetime = statbuf.st_mtime;
- if (alg_context != NULL ||
- filetime > proto_last_update)
- new_protos = build_list(f, &rc);
- }
+ f = fopen(INET_IPSECALGSFILE, "rF");
+ if (f != NULL) {
+ rc = fstat(fileno(f), &statbuf);
+ if (rc != -1) {
+ /*
+ * Update if the file is newer than our
+ * last cached copy.
+ */
+ filetime = statbuf.st_mtime;
+ if (alg_context != NULL ||
+ filetime > proto_last_update)
+ new_protos = build_list(f, &rc);
}
+ /* Since f is read-only, can avoid all of the failures... */
+ (void) fclose(f);
}
if (alg_context == NULL) {
@@ -622,9 +618,6 @@ _build_internal_algs(ipsec_proto_t **alg_context, int *alg_nums)
*alg_nums = rc;
}
- /* Since f is read-only, can avoid all of the failures... */
- if (f != NULL)
- (void) fclose(f);
}
/*