static bool sgr_locked = false;
/* local function prototypes */
-static void fail_exit (int status);
+static void fail_exit (int status, bool process_selinux);
static void usage (int status);
static void process_flags (int argc, char **argv, struct option_flags *flags);
-static void fail_exit (int status)
+static void fail_exit (int status, bool process_selinux)
{
if (gr_locked) {
- if (gr_unlock (true) == 0) {
+ if (gr_unlock (process_selinux) == 0) {
fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, gr_dbname ());
SYSLOG ((LOG_ERR, "failed to unlock %s", gr_dbname ()));
/* continue */
}
if (sgr_locked) {
- if (sgr_unlock (true) == 0) {
+ if (sgr_unlock (process_selinux) == 0) {
fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, sgr_dbname ());
SYSLOG ((LOG_ERR, "failed to unlock %s", sgr_dbname ()));
/* continue */
fprintf (stderr,
_("%s: cannot lock %s; try again later.\n"),
Prog, gr_dbname ());
- fail_exit (5);
+ fail_exit (5, process_selinux);
}
gr_locked = true;
if (gr_open (O_CREAT | O_RDWR) == 0) {
fprintf (stderr,
_("%s: cannot open %s\n"), Prog, gr_dbname ());
- fail_exit (1);
+ fail_exit (1, process_selinux);
}
if (sgr_lock () == 0) {
fprintf (stderr,
_("%s: cannot lock %s; try again later.\n"),
Prog, sgr_dbname ());
- fail_exit (5);
+ fail_exit (5, process_selinux);
}
sgr_locked = true;
if (sgr_open (O_RDONLY) == 0) {
fprintf (stderr,
_("%s: cannot open %s\n"), Prog, sgr_dbname ());
- fail_exit (1);
+ fail_exit (1, process_selinux);
}
/*
fprintf (stderr,
_("%s: failed to prepare the new %s entry '%s'\n"),
Prog, gr_dbname (), grent.gr_name);
- fail_exit (3);
+ fail_exit (3, process_selinux);
}
}
}
_("%s: failure while writing changes to %s\n"),
Prog, gr_dbname ());
SYSLOG ((LOG_ERR, "failure while writing changes to %s", gr_dbname ()));
- fail_exit (3);
+ fail_exit (3, process_selinux);
}
if (unlink(_PATH_GSHADOW) != 0) {
_("%s: cannot delete %s\n"),
Prog, _PATH_GSHADOW);
SYSLOG((LOG_ERR, "cannot delete %s", _PATH_GSHADOW));
- fail_exit (3);
+ fail_exit (3, process_selinux);
}
if (gr_unlock (process_selinux) == 0) {