1/*- 2 * Copyright (c) 2002-2003 Networks Associates Technology, Inc. |
3 * Copyright (c) 2004-2011 Dag-Erling Sm��rgrav |
4 * All rights reserved. 5 * 6 * This software was developed for the FreeBSD Project by ThinkSec AS and 7 * Network Associates Laboratories, the Security Research Division of 8 * Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 9 * ("CBOSS"), as part of the DARPA CHATS research program. 10 * 11 * Redistribution and use in source and binary forms, with or without --- 15 unchanged lines hidden (view full) --- 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * |
35 * $Id: openpam_load.c 491 2011-11-12 00:12:32Z des $ |
36 */ 37 |
38#ifdef HAVE_CONFIG_H 39# include "config.h" 40#endif 41 |
42#include <dlfcn.h> 43#include <stdlib.h> 44#include <string.h> 45 46#include <security/pam_appl.h> 47 48#include "openpam_impl.h" 49 |
50/* 51 * Locate a matching dynamic or static module. 52 */ 53 54pam_module_t * 55openpam_load_module(const char *path) 56{ 57 pam_module_t *module; --- 45 unchanged lines hidden (view full) --- 103 104static void 105openpam_destroy_chain(pam_chain_t *chain) 106{ 107 if (chain == NULL) 108 return; 109 openpam_destroy_chain(chain->next); 110 chain->next = NULL; |
111 while (chain->optc--) |
112 FREE(chain->optv[chain->optc]); |
113 FREE(chain->optv); 114 openpam_release_module(chain->module); 115 chain->module = NULL; 116 FREE(chain); 117} 118 119 120/* --- 17 unchanged lines hidden --- |