mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-30 06:32:44 +00:00
Allow applications to disable the installation of the atexit() handler
which cleans up OPIE lockfiles. This is required for pam_opie. Submitted by: Jim Bloom <bloom@acm.org>
This commit is contained in:
parent
e50c89eca8
commit
bf1d0435ca
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=59300
@ -27,6 +27,8 @@ License Agreement applies to this software.
|
|||||||
error return values. Check open() return value properly.
|
error return values. Check open() return value properly.
|
||||||
Avoid NULL.
|
Avoid NULL.
|
||||||
Created at NRL for OPIE 2.2 from opiesubr2.c
|
Created at NRL for OPIE 2.2 from opiesubr2.c
|
||||||
|
|
||||||
|
$FreeBSD$
|
||||||
*/
|
*/
|
||||||
#include "opie_cfg.h"
|
#include "opie_cfg.h"
|
||||||
#if HAVE_STRING_H
|
#if HAVE_STRING_H
|
||||||
@ -49,12 +51,17 @@ License Agreement applies to this software.
|
|||||||
#endif /* !HAVE_LSTAT */
|
#endif /* !HAVE_LSTAT */
|
||||||
|
|
||||||
int __opie_lockrefcount = 0;
|
int __opie_lockrefcount = 0;
|
||||||
|
static int do_atexit = 1;
|
||||||
|
|
||||||
|
VOIDRET opiedisableaeh FUNCTION_NOARGS
|
||||||
|
{
|
||||||
|
do_atexit = 0;
|
||||||
|
}
|
||||||
#if USER_LOCKING
|
#if USER_LOCKING
|
||||||
char *__opie_lockfilename = (char *)0;
|
char *__opie_lockfilename = (char *)0;
|
||||||
|
|
||||||
/* atexit() handler for opielock() */
|
/* atexit() handler for opielock() */
|
||||||
static VOIDRET opieunlockaeh FUNCTION_NOARGS
|
VOIDRET opieunlockaeh FUNCTION_NOARGS
|
||||||
{
|
{
|
||||||
if (__opie_lockfilename) {
|
if (__opie_lockfilename) {
|
||||||
__opie_lockrefcount = 0;
|
__opie_lockrefcount = 0;
|
||||||
@ -227,7 +234,8 @@ int opielock FUNCTION((principal), char *principal)
|
|||||||
|
|
||||||
__opie_lockrefcount++;
|
__opie_lockrefcount++;
|
||||||
rval = 0;
|
rval = 0;
|
||||||
atexit(opieunlockaeh);
|
if (do_atexit)
|
||||||
|
atexit(opieunlockaeh);
|
||||||
|
|
||||||
lockret:
|
lockret:
|
||||||
if (fh >= 0)
|
if (fh >= 0)
|
||||||
|
@ -93,6 +93,9 @@ void opiehash __P((void *, unsigned));
|
|||||||
int opiehtoi __P((register char));
|
int opiehtoi __P((register char));
|
||||||
int opiekeycrunch __P((int, char *, char *, char *));
|
int opiekeycrunch __P((int, char *, char *, char *));
|
||||||
int opielock __P((char *));
|
int opielock __P((char *));
|
||||||
|
int opieunlock __P((void));
|
||||||
|
void opieunlockaeh __P((void));
|
||||||
|
void opiedisableaeh __P((void));
|
||||||
int opielookup __P((struct opie *,char *));
|
int opielookup __P((struct opie *,char *));
|
||||||
int opiepasscheck __P((char *));
|
int opiepasscheck __P((char *));
|
||||||
void opierandomchallenge __P((char *));
|
void opierandomchallenge __P((char *));
|
||||||
|
Loading…
Reference in New Issue
Block a user