Skip to content

Commit

Permalink
Don't try to cleanup libselinux and libaudit.
Browse files Browse the repository at this point in the history
Because we are not shutting down the other threads first another
thread might work on a query before the process shuts down.  In this
case the now uninitialized libselinux and libaudit might be used.
Just don't free the resources.  It's not necessary anyway because
the process is about to terminate.
  • Loading branch information
Jakub Jelinek authored and Ulrich Drepper committed May 16, 2009
1 parent 9437b42 commit 9e471da
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 20 deletions.
7 changes: 7 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
2009-05-14 Jakub Jelinek <jakub@redhat.com>

* nscd/selinux.c (nscd_avc_destroy): Removed.
* nscd/selinux.h (nscd_avc_destroy): Likewise.
* nscd/nscd.c (termination_handler): Don't call
nscd_avc_destroy.

2009-05-15 Ulrich Drepper <drepper@redhat.com>

* cancellation.c (__pthread_disable_asynccancel): Correct the bits
Expand Down
4 changes: 0 additions & 4 deletions nscd/nscd.c
Original file line number Diff line number Diff line change
Expand Up @@ -488,10 +488,6 @@ termination_handler (int signum)
msync (dbs[cnt].head, dbs[cnt].memsize, MS_ASYNC);
}

/* Shutdown the SELinux AVC. */
if (selinux_enabled)
nscd_avc_destroy ();

_exit (EXIT_SUCCESS);
}

Expand Down
13 changes: 1 addition & 12 deletions nscd/selinux.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* SELinux access controls for nscd.
Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Matthew Rickard <mjricka@epoch.ncsc.mil>, 2004.
Expand Down Expand Up @@ -418,15 +418,4 @@ nscd_avc_print_stats (struct avc_cache_stats *cstats)
cstats->cav_probes, cstats->cav_misses);
}


/* Clean up the AVC before exiting. */
void
nscd_avc_destroy (void)
{
avc_destroy ();
#ifdef HAVE_LIBAUDIT
audit_close (audit_fd);
#endif
}

#endif /* HAVE_SELINUX */
5 changes: 1 addition & 4 deletions nscd/selinux.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Header for nscd SELinux access controls.
Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
Copyright (C) 2004, 2006, 2007, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Matthew Rickard <mjricka@epoch.ncsc.mil>, 2004.
Expand Down Expand Up @@ -35,8 +35,6 @@ struct avc_cache_stats;

/* Initialize the userspace AVC. */
extern void nscd_avc_init (void);
/* Destroy the userspace AVC. */
extern void nscd_avc_destroy (void);
/* Determine if we are running on an SELinux kernel. */
extern void nscd_selinux_enabled (int *selinux_enabled);
/* Check if the client has permission for the request type. */
Expand All @@ -55,7 +53,6 @@ extern void install_real_capabilities (cap_t new_caps);
#else
# define selinux_enabled 0
# define nscd_avc_init() (void) 0
# define nscd_avc_destroy() (void) 0
# define nscd_selinux_enabled(selinux_enabled) (void) 0
# define nscd_request_avc_has_perm(fd, req) 0
# define nscd_avc_cache_stats(cstats) (void) 0
Expand Down

0 comments on commit 9e471da

Please sign in to comment.