diff options
author | casper <none@none> | 2006-05-01 11:23:49 -0700 |
---|---|---|
committer | casper <none@none> | 2006-05-01 11:23:49 -0700 |
commit | 004388ebfdfe2ed7dfd2d153a876dfcc22d2c006 (patch) | |
tree | 9f3972760e2696f63065521871e50e1440bfbb75 /usr/src/lib/libnsl/ipsec/algs.c | |
parent | 0ade2cf005fcaecc5255dacf7d76683de855a9da (diff) | |
download | illumos-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.c | 43 |
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); } /* |