|
Ian Kent |
5c19ca |
autofs-5.0.3 - use CLOEXEC flag
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
From: Ian Kent <raven@themaw.net>
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
Update autofs to use the new CLOEXEC flag if present.
|
|
Ian Kent |
5c19ca |
This allows us to set close on exec atomically flag when opening files,
|
|
Ian Kent |
5c19ca |
hopefully avoiding selinux complaining about leaked file handles.
|
|
Ian Kent |
5c19ca |
---
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
daemon/automount.c | 42 +++---------------
|
|
Ian Kent |
5c19ca |
daemon/direct.c | 2
|
|
Ian Kent |
5c19ca |
daemon/flag.c | 8 +--
|
|
Ian Kent |
5c19ca |
daemon/indirect.c | 2
|
|
Ian Kent |
5c19ca |
daemon/lookup.c | 1
|
|
Ian Kent |
5c19ca |
daemon/module.c | 2
|
|
Ian Kent |
5c19ca |
daemon/spawn.c | 11 ----
|
|
Ian Kent |
5c19ca |
include/automount.h | 106 ++++++++++++++++++++++++++++++++++++++++++++++
|
|
Ian Kent |
5c19ca |
include/state.h | 1
|
|
Ian Kent |
5c19ca |
lib/cache.c | 2
|
|
Ian Kent |
5c19ca |
lib/defaults.c | 7 +--
|
|
Ian Kent |
5c19ca |
lib/log.c | 2
|
|
Ian Kent |
5c19ca |
lib/macros.c | 1
|
|
Ian Kent |
5c19ca |
lib/mounts.c | 2
|
|
Ian Kent |
5c19ca |
lib/nss_parse.y | 13 -----
|
|
Ian Kent |
5c19ca |
lib/parse_subs.c | 1
|
|
Ian Kent |
5c19ca |
lib/rpc_subs.c | 21 ++-------
|
|
Ian Kent |
5c19ca |
modules/cyrus-sasl.c | 1
|
|
Ian Kent |
5c19ca |
modules/lookup_file.c | 40 ++---------------
|
|
Ian Kent |
5c19ca |
modules/lookup_hesiod.c | 1
|
|
Ian Kent |
5c19ca |
modules/lookup_hosts.c | 1
|
|
Ian Kent |
5c19ca |
modules/lookup_ldap.c | 1
|
|
Ian Kent |
5c19ca |
modules/lookup_multi.c | 1
|
|
Ian Kent |
5c19ca |
modules/lookup_nisplus.c | 1
|
|
Ian Kent |
5c19ca |
modules/lookup_program.c | 5 --
|
|
Ian Kent |
5c19ca |
modules/lookup_userhome.c | 1
|
|
Ian Kent |
5c19ca |
modules/lookup_yp.c | 1
|
|
Ian Kent |
5c19ca |
modules/mount_afs.c | 2
|
|
Ian Kent |
5c19ca |
modules/mount_autofs.c | 2
|
|
Ian Kent |
5c19ca |
modules/mount_bind.c | 2
|
|
Ian Kent |
5c19ca |
modules/mount_changer.c | 10 ----
|
|
Ian Kent |
5c19ca |
modules/mount_ext2.c | 2
|
|
Ian Kent |
5c19ca |
modules/mount_generic.c | 2
|
|
Ian Kent |
5c19ca |
modules/mount_nfs.c | 2
|
|
Ian Kent |
5c19ca |
modules/parse_hesiod.c | 1
|
|
Ian Kent |
5c19ca |
modules/parse_sun.c | 2
|
|
Ian Kent |
5c19ca |
modules/replicated.c | 13 +----
|
|
Ian Kent |
5c19ca |
37 files changed, 145 insertions(+), 170 deletions(-)
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/daemon/automount.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/daemon/automount.c
|
|
Ian Kent |
5c19ca |
@@ -20,13 +20,11 @@
|
|
Ian Kent |
5c19ca |
* ----------------------------------------------------------------------- */
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <dirent.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <getopt.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <sys/ioctl.h>
|
|
Ian Kent |
5c19ca |
#include <ctype.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
@@ -68,6 +66,9 @@ static pthread_t state_mach_thid;
|
|
Ian Kent |
5c19ca |
/* Pre-calculated kernel packet length */
|
|
Ian Kent |
5c19ca |
static size_t kpkt_len;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
+/* Does kernel know about SOCK_CLOEXEC and friends */
|
|
Ian Kent |
5c19ca |
+static int cloexec_works = 0;
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
/* Attribute to create detached thread */
|
|
Ian Kent |
5c19ca |
pthread_attr_t thread_attr;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -705,7 +706,7 @@ static char *automount_path_to_fifo(unsi
|
|
Ian Kent |
5c19ca |
static int create_logpri_fifo(struct autofs_point *ap)
|
|
Ian Kent |
5c19ca |
{
|
|
Ian Kent |
5c19ca |
int ret = -1;
|
|
Ian Kent |
5c19ca |
- int fd, cl_flags;
|
|
Ian Kent |
5c19ca |
+ int fd;
|
|
Ian Kent |
5c19ca |
char *fifo_name;
|
|
Ian Kent |
5c19ca |
char buf[MAX_ERR_BUF];
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -731,7 +732,7 @@ static int create_logpri_fifo(struct aut
|
|
Ian Kent |
5c19ca |
goto out_free;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- fd = open(fifo_name, O_RDWR|O_NONBLOCK);
|
|
Ian Kent |
5c19ca |
+ fd = open_fd(fifo_name, O_RDWR|O_NONBLOCK);
|
|
Ian Kent |
5c19ca |
if (fd < 0) {
|
|
Ian Kent |
5c19ca |
char *estr = strerror_r(errno, buf, MAX_ERR_BUF);
|
|
Ian Kent |
5c19ca |
crit(ap->logopt,
|
|
Ian Kent |
5c19ca |
@@ -741,11 +742,6 @@ static int create_logpri_fifo(struct aut
|
|
Ian Kent |
5c19ca |
goto out_free;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(fd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(fd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
ap->logpri_fifo = fd;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
out_free:
|
|
Ian Kent |
5c19ca |
@@ -997,7 +993,7 @@ int do_expire(struct autofs_point *ap, c
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
static int autofs_init_ap(struct autofs_point *ap)
|
|
Ian Kent |
5c19ca |
{
|
|
Ian Kent |
5c19ca |
- int pipefd[2], cl_flags;
|
|
Ian Kent |
5c19ca |
+ int pipefd[2];
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
if ((ap->state != ST_INIT)) {
|
|
Ian Kent |
5c19ca |
/* This can happen if an autofs process is already running*/
|
|
Ian Kent |
5c19ca |
@@ -1008,7 +1004,7 @@ static int autofs_init_ap(struct autofs_
|
|
Ian Kent |
5c19ca |
ap->pipefd = ap->kpipefd = ap->ioctlfd = -1;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
/* Pipe for kernel communications */
|
|
Ian Kent |
5c19ca |
- if (pipe(pipefd) < 0) {
|
|
Ian Kent |
5c19ca |
+ if (open_pipe(pipefd) < 0) {
|
|
Ian Kent |
5c19ca |
crit(ap->logopt,
|
|
Ian Kent |
5c19ca |
"failed to create commumication pipe for autofs path %s",
|
|
Ian Kent |
5c19ca |
ap->path);
|
|
Ian Kent |
5c19ca |
@@ -1018,18 +1014,8 @@ static int autofs_init_ap(struct autofs_
|
|
Ian Kent |
5c19ca |
ap->pipefd = pipefd[0];
|
|
Ian Kent |
5c19ca |
ap->kpipefd = pipefd[1];
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(ap->pipefd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(ap->pipefd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(ap->kpipefd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(ap->kpipefd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
/* Pipe state changes from signal handler to main loop */
|
|
Ian Kent |
5c19ca |
- if (pipe(ap->state_pipe) < 0) {
|
|
Ian Kent |
5c19ca |
+ if (open_pipe(ap->state_pipe) < 0) {
|
|
Ian Kent |
5c19ca |
crit(ap->logopt,
|
|
Ian Kent |
5c19ca |
"failed create state pipe for autofs path %s", ap->path);
|
|
Ian Kent |
5c19ca |
close(ap->pipefd);
|
|
Ian Kent |
5c19ca |
@@ -1037,16 +1023,6 @@ static int autofs_init_ap(struct autofs_
|
|
Ian Kent |
5c19ca |
return -1;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(ap->state_pipe[0], F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(ap->state_pipe[0], F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(ap->state_pipe[1], F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(ap->state_pipe[1], F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
if (create_logpri_fifo(ap) < 0) {
|
|
Ian Kent |
5c19ca |
logmsg("could not create FIFO for path %s\n", ap->path);
|
|
Ian Kent |
5c19ca |
logmsg("dynamic log level changes not available for %s", ap->path);
|
|
Ian Kent |
5c19ca |
@@ -1114,7 +1090,7 @@ static void become_daemon(unsigned foreg
|
|
Ian Kent |
5c19ca |
exit(0);
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if (pipe(start_pipefd) < 0) {
|
|
Ian Kent |
5c19ca |
+ if (open_pipe(start_pipefd) < 0) {
|
|
Ian Kent |
5c19ca |
fprintf(stderr, "%s: failed to create start_pipefd.\n",
|
|
Ian Kent |
5c19ca |
program);
|
|
Ian Kent |
5c19ca |
exit(0);
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/daemon/direct.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/daemon/direct.c
|
|
Ian Kent |
5c19ca |
@@ -20,12 +20,10 @@
|
|
Ian Kent |
5c19ca |
* ----------------------------------------------------------------------- */
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <dirent.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <sys/ioctl.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
#include <sys/wait.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/daemon/flag.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/daemon/flag.c
|
|
Ian Kent |
5c19ca |
@@ -21,15 +21,15 @@
|
|
Ian Kent |
5c19ca |
#include <sys/time.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
#include <sys/stat.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <time.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <alloca.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
#include <errno.h>
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
+#include "automount.h"
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
#define MAX_PIDSIZE 20
|
|
Ian Kent |
5c19ca |
#define FLAG_FILE AUTOFS_FLAG_DIR "/autofs-running"
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -129,7 +129,7 @@ int aquire_flag_file(void)
|
|
Ian Kent |
5c19ca |
while (!we_created_flagfile) {
|
|
Ian Kent |
5c19ca |
int errsv, i, j;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- i = open(linkf, O_WRONLY|O_CREAT, 0);
|
|
Ian Kent |
5c19ca |
+ i = open_fd_mode(linkf, O_WRONLY|O_CREAT, 0);
|
|
Ian Kent |
5c19ca |
if (i < 0) {
|
|
Ian Kent |
5c19ca |
release_flag_file();
|
|
Ian Kent |
5c19ca |
return 0;
|
|
Ian Kent |
5c19ca |
@@ -146,7 +146,7 @@ int aquire_flag_file(void)
|
|
Ian Kent |
5c19ca |
return 0;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- fd = open(FLAG_FILE, O_RDWR);
|
|
Ian Kent |
5c19ca |
+ fd = open_fd(FLAG_FILE, O_RDWR);
|
|
Ian Kent |
5c19ca |
if (fd < 0) {
|
|
Ian Kent |
5c19ca |
/* Maybe the file was just deleted? */
|
|
Ian Kent |
5c19ca |
if (errno == ENOENT)
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/daemon/indirect.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/daemon/indirect.c
|
|
Ian Kent |
5c19ca |
@@ -20,12 +20,10 @@
|
|
Ian Kent |
5c19ca |
* ----------------------------------------------------------------------- */
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <dirent.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <sys/ioctl.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
#include <sys/wait.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/daemon/lookup.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/daemon/lookup.c
|
|
Ian Kent |
5c19ca |
@@ -22,7 +22,6 @@
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <sys/stat.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include "automount.h"
|
|
Ian Kent |
5c19ca |
#include "nsswitch.h"
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/daemon/module.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/daemon/module.c
|
|
Ian Kent |
5c19ca |
@@ -31,7 +31,7 @@ int load_autofs4_module(void)
|
|
Ian Kent |
5c19ca |
* is an older version we will catch it at mount
|
|
Ian Kent |
5c19ca |
* time.
|
|
Ian Kent |
5c19ca |
*/
|
|
Ian Kent |
5c19ca |
- fp = fopen("/proc/filesystems", "r");
|
|
Ian Kent |
5c19ca |
+ fp = open_fopen_r("/proc/filesystems");
|
|
Ian Kent |
5c19ca |
if (!fp) {
|
|
Ian Kent |
5c19ca |
logerr("cannot open /proc/filesystems\n");
|
|
Ian Kent |
5c19ca |
return 0;
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/daemon/spawn.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/daemon/spawn.c
|
|
Ian Kent |
5c19ca |
@@ -13,7 +13,6 @@
|
|
Ian Kent |
5c19ca |
*
|
|
Ian Kent |
5c19ca |
* ----------------------------------------------------------------------- */
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
#include <stdarg.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
@@ -21,7 +20,6 @@
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
#include <dirent.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <time.h>
|
|
Ian Kent |
5c19ca |
#include <sys/wait.h>
|
|
Ian Kent |
5c19ca |
#include <sys/stat.h>
|
|
Ian Kent |
5c19ca |
@@ -125,7 +123,7 @@ static int do_spawn(unsigned logopt, uns
|
|
Ian Kent |
5c19ca |
int ret, status, pipefd[2];
|
|
Ian Kent |
5c19ca |
char errbuf[ERRBUFSIZ + 1], *p, *sp;
|
|
Ian Kent |
5c19ca |
int errp, errn;
|
|
Ian Kent |
5c19ca |
- int flags, cancel_state;
|
|
Ian Kent |
5c19ca |
+ int cancel_state;
|
|
Ian Kent |
5c19ca |
unsigned int use_lock = options & SPAWN_OPT_LOCK;
|
|
Ian Kent |
5c19ca |
unsigned int use_access = options & SPAWN_OPT_ACCESS;
|
|
Ian Kent |
5c19ca |
sigset_t allsigs, tmpsig, oldsig;
|
|
Ian Kent |
5c19ca |
@@ -133,7 +131,7 @@ static int do_spawn(unsigned logopt, uns
|
|
Ian Kent |
5c19ca |
pid_t euid = 0;
|
|
Ian Kent |
5c19ca |
gid_t egid = 0;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if (pipe(pipefd))
|
|
Ian Kent |
5c19ca |
+ if (open_pipe(pipefd))
|
|
Ian Kent |
5c19ca |
return -1;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cancel_state);
|
|
Ian Kent |
5c19ca |
@@ -213,11 +211,6 @@ static int do_spawn(unsigned logopt, uns
|
|
Ian Kent |
5c19ca |
return -1;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((flags = fcntl(pipefd[0], F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(pipefd[0], F_SETFD, flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
errp = 0;
|
|
Ian Kent |
5c19ca |
do {
|
|
Ian Kent |
5c19ca |
errn = timed_read(pipefd[0],
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/include/automount.h
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/include/automount.h
|
|
Ian Kent |
5c19ca |
@@ -17,6 +17,8 @@
|
|
Ian Kent |
5c19ca |
#include <pthread.h>
|
|
Ian Kent |
5c19ca |
#include <sched.h>
|
|
Ian Kent |
5c19ca |
#include <errno.h>
|
|
Ian Kent |
5c19ca |
+#include <unistd.h>
|
|
Ian Kent |
5c19ca |
+#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include "config.h"
|
|
Ian Kent |
5c19ca |
#include "list.h"
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -464,5 +466,109 @@ int alarm_start_handler(void);
|
|
Ian Kent |
5c19ca |
int alarm_add(struct autofs_point *ap, time_t seconds);
|
|
Ian Kent |
5c19ca |
void alarm_delete(struct autofs_point *ap);
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
+/*
|
|
Ian Kent |
5c19ca |
+ * Use CLOEXEC flag for open(), pipe(), fopen() (read-only case) and
|
|
Ian Kent |
5c19ca |
+ * socket() if possible.
|
|
Ian Kent |
5c19ca |
+ */
|
|
Ian Kent |
5c19ca |
+static int cloexec_works;
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+static inline void check_cloexec(int fd)
|
|
Ian Kent |
5c19ca |
+{
|
|
Ian Kent |
5c19ca |
+ if (cloexec_works == 0) {
|
|
Ian Kent |
5c19ca |
+ int fl = fcntl(fd, F_GETFD);
|
|
Ian Kent |
5c19ca |
+ cloexec_works = (fl & FD_CLOEXEC) ? 1 : -1;
|
|
Ian Kent |
5c19ca |
+ }
|
|
Ian Kent |
5c19ca |
+ if (cloexec_works > 0)
|
|
Ian Kent |
5c19ca |
+ return;
|
|
Ian Kent |
5c19ca |
+ fcntl(fd, F_SETFD, FD_CLOEXEC);
|
|
Ian Kent |
5c19ca |
+ return;
|
|
Ian Kent |
5c19ca |
+}
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+static inline int open_fd(const char *path, int flags)
|
|
Ian Kent |
5c19ca |
+{
|
|
Ian Kent |
5c19ca |
+ int fd;
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+#if defined(O_CLOEXEC) && defined(SOCK_CLOEXEC)
|
|
Ian Kent |
5c19ca |
+ if (cloexec_works != -1)
|
|
Ian Kent |
5c19ca |
+ flags |= O_CLOEXEC;
|
|
Ian Kent |
5c19ca |
+#endif
|
|
Ian Kent |
5c19ca |
+ fd = open(path, flags);
|
|
Ian Kent |
5c19ca |
+ if (fd == -1)
|
|
Ian Kent |
5c19ca |
+ return -1;
|
|
Ian Kent |
5c19ca |
+ check_cloexec(fd);
|
|
Ian Kent |
5c19ca |
+ return fd;
|
|
Ian Kent |
5c19ca |
+}
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+static inline int open_fd_mode(const char *path, int flags, int mode)
|
|
Ian Kent |
5c19ca |
+{
|
|
Ian Kent |
5c19ca |
+ int fd;
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+#if defined(O_CLOEXEC) && defined(SOCK_CLOEXEC)
|
|
Ian Kent |
5c19ca |
+ if (cloexec_works != -1)
|
|
Ian Kent |
5c19ca |
+ flags |= O_CLOEXEC;
|
|
Ian Kent |
5c19ca |
+#endif
|
|
Ian Kent |
5c19ca |
+ fd = open(path, flags, mode);
|
|
Ian Kent |
5c19ca |
+ if (fd == -1)
|
|
Ian Kent |
5c19ca |
+ return -1;
|
|
Ian Kent |
5c19ca |
+ check_cloexec(fd);
|
|
Ian Kent |
5c19ca |
+ return fd;
|
|
Ian Kent |
5c19ca |
+}
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+static inline int open_pipe(int pipefd[2])
|
|
Ian Kent |
5c19ca |
+{
|
|
Ian Kent |
5c19ca |
+ int ret;
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+#if defined(O_CLOEXEC) && defined(SOCK_CLOEXEC) && defined(__have_pipe2)
|
|
Ian Kent |
5c19ca |
+ if (cloexec_works != -1) {
|
|
Ian Kent |
5c19ca |
+ ret = pipe2(pipefd, O_CLOEXEC);
|
|
Ian Kent |
5c19ca |
+ if (ret != -1)
|
|
Ian Kent |
5c19ca |
+ return 0;
|
|
Ian Kent |
5c19ca |
+ if (errno != EINVAL)
|
|
Ian Kent |
5c19ca |
+ return -1;
|
|
Ian Kent |
5c19ca |
+ }
|
|
Ian Kent |
5c19ca |
+#endif
|
|
Ian Kent |
5c19ca |
+ ret = pipe(pipefd);
|
|
Ian Kent |
5c19ca |
+ if (ret == -1)
|
|
Ian Kent |
5c19ca |
+ return -1;
|
|
Ian Kent |
5c19ca |
+ check_cloexec(pipefd[0]);
|
|
Ian Kent |
5c19ca |
+ check_cloexec(pipefd[1]);
|
|
Ian Kent |
5c19ca |
+ return 0;
|
|
Ian Kent |
5c19ca |
+}
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+static inline int open_sock(int domain, int type, int protocol)
|
|
Ian Kent |
5c19ca |
+{
|
|
Ian Kent |
5c19ca |
+ int fd;
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+#ifdef SOCK_CLOEXEC
|
|
Ian Kent |
5c19ca |
+ if (cloexec_works != -1)
|
|
Ian Kent |
5c19ca |
+ type |= SOCK_CLOEXEC;
|
|
Ian Kent |
5c19ca |
+#endif
|
|
Ian Kent |
5c19ca |
+ fd = socket(domain, type, protocol);
|
|
Ian Kent |
5c19ca |
+ if (fd == -1)
|
|
Ian Kent |
5c19ca |
+ return -1;
|
|
Ian Kent |
5c19ca |
+ check_cloexec(fd);
|
|
Ian Kent |
5c19ca |
+ return fd;
|
|
Ian Kent |
5c19ca |
+}
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+static inline FILE *open_fopen_r(const char *path)
|
|
Ian Kent |
5c19ca |
+{
|
|
Ian Kent |
5c19ca |
+ FILE *f;
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
+#if defined(O_CLOEXEC) && defined(SOCK_CLOEXEC)
|
|
Ian Kent |
5ea9dc |
+ if (cloexec_works != -1) {
|
|
Ian Kent |
5c19ca |
+ f = fopen(path, "re");
|
|
Ian Kent |
5c19ca |
+ if (f != NULL) {
|
|
Ian Kent |
5c19ca |
+ check_cloexec(fileno(f));
|
|
Ian Kent |
5c19ca |
+ return f;
|
|
Ian Kent |
5c19ca |
+ }
|
|
Ian Kent |
5c19ca |
+ }
|
|
Ian Kent |
5c19ca |
+#endif
|
|
Ian Kent |
5c19ca |
+ f = fopen(path, "r");
|
|
Ian Kent |
5c19ca |
+ if (f == NULL)
|
|
Ian Kent |
5c19ca |
+ return NULL;
|
|
Ian Kent |
5c19ca |
+ check_cloexec(fileno(f));
|
|
Ian Kent |
5c19ca |
+ return f;
|
|
Ian Kent |
5c19ca |
+}
|
|
Ian Kent |
5c19ca |
+
|
|
Ian Kent |
5c19ca |
#endif
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/include/state.h
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/include/state.h
|
|
Ian Kent |
5c19ca |
@@ -20,7 +20,6 @@
|
|
Ian Kent |
5c19ca |
#ifndef STATE_H
|
|
Ian Kent |
5c19ca |
#define STATE_H
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/lib/cache.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/lib/cache.c
|
|
Ian Kent |
5c19ca |
@@ -17,10 +17,8 @@
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <ctype.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
#include <sys/stat.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/lib/defaults.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/lib/defaults.c
|
|
Ian Kent |
5c19ca |
@@ -21,6 +21,7 @@
|
|
Ian Kent |
5c19ca |
#include "defaults.h"
|
|
Ian Kent |
5c19ca |
#include "lookup_ldap.h"
|
|
Ian Kent |
5c19ca |
#include "log.h"
|
|
Ian Kent |
5c19ca |
+#include "automount.h"
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#define DEFAULTS_CONFIG_FILE AUTOFS_CONF_DIR "/autofs"
|
|
Ian Kent |
5c19ca |
#define MAX_LINE_LEN 256
|
|
Ian Kent |
5c19ca |
@@ -255,7 +256,7 @@ struct list_head *defaults_get_uris(void
|
|
Ian Kent |
5c19ca |
char *res;
|
|
Ian Kent |
5c19ca |
struct list_head *list;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- f = fopen(DEFAULTS_CONFIG_FILE, "r");
|
|
Ian Kent |
5c19ca |
+ f = open_fopen_r(DEFAULTS_CONFIG_FILE);
|
|
Ian Kent |
5c19ca |
if (!f)
|
|
Ian Kent |
5c19ca |
return NULL;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -298,7 +299,7 @@ unsigned int defaults_read_config(unsign
|
|
Ian Kent |
5c19ca |
char buf[MAX_LINE_LEN];
|
|
Ian Kent |
5c19ca |
char *res;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- f = fopen(DEFAULTS_CONFIG_FILE, "r");
|
|
Ian Kent |
5c19ca |
+ f = open_fopen_r(DEFAULTS_CONFIG_FILE);
|
|
Ian Kent |
5c19ca |
if (!f)
|
|
Ian Kent |
5c19ca |
return 0;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -544,7 +545,7 @@ struct ldap_searchdn *defaults_get_searc
|
|
Ian Kent |
5c19ca |
char *res;
|
|
Ian Kent |
5c19ca |
struct ldap_searchdn *sdn, *last;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- f = fopen(DEFAULTS_CONFIG_FILE, "r");
|
|
Ian Kent |
5c19ca |
+ f = open_fopen_r(DEFAULTS_CONFIG_FILE);
|
|
Ian Kent |
5c19ca |
if (!f)
|
|
Ian Kent |
5c19ca |
return NULL;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/lib/log.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/lib/log.c
|
|
Ian Kent |
5c19ca |
@@ -20,8 +20,6 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdarg.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/lib/macros.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/lib/macros.c
|
|
Ian Kent |
5c19ca |
@@ -14,7 +14,6 @@
|
|
Ian Kent |
5c19ca |
* ----------------------------------------------------------------------- */
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <limits.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/lib/mounts.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/lib/mounts.c
|
|
Ian Kent |
5c19ca |
@@ -14,13 +14,11 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <mntent.h>
|
|
Ian Kent |
5c19ca |
#include <limits.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
#include <sys/stat.h>
|
|
Ian Kent |
5c19ca |
#include <sys/ioctl.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <sys/mount.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <dirent.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/lib/nss_parse.y
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/lib/nss_parse.y
|
|
Ian Kent |
5c19ca |
@@ -22,8 +22,6 @@
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <memory.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <limits.h>
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include "automount.h"
|
|
Ian Kent |
5c19ca |
@@ -164,9 +162,9 @@ static void parse_close_nsswitch(void *a
|
|
Ian Kent |
5c19ca |
int nsswitch_parse(struct list_head *list)
|
|
Ian Kent |
5c19ca |
{
|
|
Ian Kent |
5c19ca |
FILE *nsswitch;
|
|
Ian Kent |
5c19ca |
- int fd, cl_flags, status;
|
|
Ian Kent |
5c19ca |
+ int status;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- nsswitch = fopen(NSSWITCH_FILE, "r");
|
|
Ian Kent |
5c19ca |
+ nsswitch = open_fopen_r(NSSWITCH_FILE);
|
|
Ian Kent |
5c19ca |
if (!nsswitch) {
|
|
Ian Kent |
5c19ca |
logerr("couldn't open %s\n", NSSWITCH_FILE);
|
|
Ian Kent |
5c19ca |
return 1;
|
|
Ian Kent |
5c19ca |
@@ -174,13 +172,6 @@ int nsswitch_parse(struct list_head *lis
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
pthread_cleanup_push(parse_close_nsswitch, nsswitch);
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- fd = fileno(nsswitch);
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(fd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(fd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
parse_mutex_lock();
|
|
Ian Kent |
5c19ca |
pthread_cleanup_push(parse_mutex_unlock, NULL);
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/lib/parse_subs.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/lib/parse_subs.c
|
|
Ian Kent |
5c19ca |
@@ -18,7 +18,6 @@
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <ctype.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include "automount.h"
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
/*
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/lib/rpc_subs.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/lib/rpc_subs.c
|
|
Ian Kent |
5c19ca |
@@ -21,13 +21,11 @@
|
|
Ian Kent |
5c19ca |
#include <rpc/rpc.h>
|
|
Ian Kent |
5c19ca |
#include <rpc/pmap_prot.h>
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <sys/socket.h>
|
|
Ian Kent |
5c19ca |
#include <netdb.h>
|
|
Ian Kent |
5c19ca |
#include <net/if.h>
|
|
Ian Kent |
5c19ca |
#include <netinet/in.h>
|
|
Ian Kent |
5c19ca |
#include <arpa/inet.h>
|
|
Ian Kent |
5c19ca |
-#include <sys/fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <rpcsvc/ypclnt.h>
|
|
Ian Kent |
5c19ca |
#include <errno.h>
|
|
Ian Kent |
5c19ca |
#include <sys/ioctl.h>
|
|
Ian Kent |
5c19ca |
@@ -36,6 +34,7 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include "mount.h"
|
|
Ian Kent |
5c19ca |
#include "rpc_subs.h"
|
|
Ian Kent |
5c19ca |
+#include "automount.h"
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
/* #define STANDALONE */
|
|
Ian Kent |
5c19ca |
#ifdef STANDALONE
|
|
Ian Kent |
5c19ca |
@@ -59,7 +58,7 @@ inline void dump_core(void);
|
|
Ian Kent |
5c19ca |
*/
|
|
Ian Kent |
5c19ca |
static CLIENT *create_udp_client(struct conn_info *info)
|
|
Ian Kent |
5c19ca |
{
|
|
Ian Kent |
5c19ca |
- int fd, cl_flags, ret, ghn_errno;
|
|
Ian Kent |
5c19ca |
+ int fd, ret, ghn_errno;
|
|
Ian Kent |
5c19ca |
CLIENT *client;
|
|
Ian Kent |
5c19ca |
struct sockaddr_in laddr, raddr;
|
|
Ian Kent |
5c19ca |
struct hostent hp;
|
|
Ian Kent |
5c19ca |
@@ -115,15 +114,10 @@ got_addr:
|
|
Ian Kent |
5c19ca |
* layer, it would bind to a reserved port, which has been shown
|
|
Ian Kent |
5c19ca |
* to exhaust the reserved port range in some situations.
|
|
Ian Kent |
5c19ca |
*/
|
|
Ian Kent |
5c19ca |
- fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
|
|
Ian Kent |
5c19ca |
+ fd = open_sock(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
|
|
Ian Kent |
5c19ca |
if (fd < 0)
|
|
Ian Kent |
5c19ca |
return NULL;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(fd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(fd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
laddr.sin_family = AF_INET;
|
|
Ian Kent |
5c19ca |
laddr.sin_port = 0;
|
|
Ian Kent |
5c19ca |
laddr.sin_addr.s_addr = htonl(INADDR_ANY);
|
|
Ian Kent |
5c19ca |
@@ -274,7 +268,7 @@ done:
|
|
Ian Kent |
5c19ca |
*/
|
|
Ian Kent |
5c19ca |
static CLIENT *create_tcp_client(struct conn_info *info)
|
|
Ian Kent |
5c19ca |
{
|
|
Ian Kent |
5c19ca |
- int fd, cl_flags, ghn_errno;
|
|
Ian Kent |
5c19ca |
+ int fd, ghn_errno;
|
|
Ian Kent |
5c19ca |
CLIENT *client;
|
|
Ian Kent |
5c19ca |
struct sockaddr_in addr;
|
|
Ian Kent |
5c19ca |
struct hostent hp;
|
|
Ian Kent |
5c19ca |
@@ -324,15 +318,10 @@ got_addr:
|
|
Ian Kent |
5c19ca |
addr.sin_port = htons(info->port);
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
if (!info->client) {
|
|
Ian Kent |
5c19ca |
- fd = socket(PF_INET, SOCK_STREAM, info->proto->p_proto);
|
|
Ian Kent |
5c19ca |
+ fd = open_sock(PF_INET, SOCK_STREAM, info->proto->p_proto);
|
|
Ian Kent |
5c19ca |
if (fd < 0)
|
|
Ian Kent |
5c19ca |
return NULL;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(fd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(fd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
ret = connect_nb(fd, &addr, &info->timeout);
|
|
Ian Kent |
5c19ca |
if (ret < 0)
|
|
Ian Kent |
5c19ca |
goto out_close;
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/cyrus-sasl.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/cyrus-sasl.c
|
|
Ian Kent |
5c19ca |
@@ -51,7 +51,6 @@
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <ldap.h>
|
|
Ian Kent |
5c19ca |
#include <sasl/sasl.h>
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/lookup_file.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/lookup_file.c
|
|
Ian Kent |
5c19ca |
@@ -17,8 +17,6 @@
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
#include <time.h>
|
|
Ian Kent |
5c19ca |
#include <ctype.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
@@ -395,7 +393,7 @@ int lookup_read_master(struct master *ma
|
|
Ian Kent |
5c19ca |
char *ent;
|
|
Ian Kent |
5c19ca |
struct stat st;
|
|
Ian Kent |
5c19ca |
FILE *f;
|
|
Ian Kent |
5c19ca |
- int fd, cl_flags;
|
|
Ian Kent |
5c19ca |
+ int fd;
|
|
Ian Kent |
5c19ca |
unsigned int path_len, ent_len;
|
|
Ian Kent |
5c19ca |
int entry, cur_state;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -422,7 +420,7 @@ int lookup_read_master(struct master *ma
|
|
Ian Kent |
5c19ca |
return NSS_STATUS_UNAVAIL;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- f = fopen(ctxt->mapname, "r");
|
|
Ian Kent |
5c19ca |
+ f = open_fopen_r(ctxt->mapname);
|
|
Ian Kent |
5c19ca |
if (!f) {
|
|
Ian Kent |
5c19ca |
error(logopt,
|
|
Ian Kent |
5c19ca |
MODPREFIX "could not open master map file %s",
|
|
Ian Kent |
5c19ca |
@@ -432,11 +430,6 @@ int lookup_read_master(struct master *ma
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
fd = fileno(f);
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(fd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(fd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
while(1) {
|
|
Ian Kent |
5c19ca |
entry = read_one(logopt, f, path, &path_len, ent, &ent_len);
|
|
Ian Kent |
5c19ca |
if (!entry) {
|
|
Ian Kent |
5c19ca |
@@ -651,7 +644,7 @@ int lookup_read_map(struct autofs_point
|
|
Ian Kent |
5c19ca |
char *mapent;
|
|
Ian Kent |
5c19ca |
struct stat st;
|
|
Ian Kent |
5c19ca |
FILE *f;
|
|
Ian Kent |
5c19ca |
- int fd, cl_flags;
|
|
Ian Kent |
5c19ca |
+ int fd;
|
|
Ian Kent |
5c19ca |
unsigned int k_len, m_len;
|
|
Ian Kent |
5c19ca |
int entry;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -684,7 +677,7 @@ int lookup_read_map(struct autofs_point
|
|
Ian Kent |
5c19ca |
return NSS_STATUS_UNAVAIL;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- f = fopen(ctxt->mapname, "r");
|
|
Ian Kent |
5c19ca |
+ f = open_fopen_r(ctxt->mapname);
|
|
Ian Kent |
5c19ca |
if (!f) {
|
|
Ian Kent |
5c19ca |
error(ap->logopt,
|
|
Ian Kent |
5c19ca |
MODPREFIX "could not open map file %s", ctxt->mapname);
|
|
Ian Kent |
5c19ca |
@@ -693,11 +686,6 @@ int lookup_read_map(struct autofs_point
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
fd = fileno(f);
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(fd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(fd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
while(1) {
|
|
Ian Kent |
5c19ca |
entry = read_one(ap->logopt, f, key, &k_len, mapent, &m_len);
|
|
Ian Kent |
5c19ca |
if (!entry) {
|
|
Ian Kent |
5c19ca |
@@ -784,7 +772,6 @@ static int lookup_one(struct autofs_poin
|
|
Ian Kent |
5c19ca |
char mapent[MAPENT_MAX_LEN + 1];
|
|
Ian Kent |
5c19ca |
time_t age = time(NULL);
|
|
Ian Kent |
5c19ca |
FILE *f;
|
|
Ian Kent |
5c19ca |
- int fd, cl_flags;
|
|
Ian Kent |
5c19ca |
unsigned int k_len, m_len;
|
|
Ian Kent |
5c19ca |
int entry, ret;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -794,20 +781,13 @@ static int lookup_one(struct autofs_poin
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
mc = source->mc;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- f = fopen(ctxt->mapname, "r");
|
|
Ian Kent |
5c19ca |
+ f = open_fopen_r(ctxt->mapname);
|
|
Ian Kent |
5c19ca |
if (!f) {
|
|
Ian Kent |
5c19ca |
error(ap->logopt,
|
|
Ian Kent |
5c19ca |
MODPREFIX "could not open map file %s", ctxt->mapname);
|
|
Ian Kent |
5c19ca |
return CHE_FAIL;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- fd = fileno(f);
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(fd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(fd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
while(1) {
|
|
Ian Kent |
5c19ca |
entry = read_one(ap->logopt, f, mkey, &k_len, mapent, &m_len);
|
|
Ian Kent |
5c19ca |
if (entry) {
|
|
Ian Kent |
5c19ca |
@@ -897,7 +877,6 @@ static int lookup_wild(struct autofs_poi
|
|
Ian Kent |
5c19ca |
char mapent[MAPENT_MAX_LEN + 1];
|
|
Ian Kent |
5c19ca |
time_t age = time(NULL);
|
|
Ian Kent |
5c19ca |
FILE *f;
|
|
Ian Kent |
5c19ca |
- int fd, cl_flags;
|
|
Ian Kent |
5c19ca |
unsigned int k_len, m_len;
|
|
Ian Kent |
5c19ca |
int entry, ret;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
@@ -907,20 +886,13 @@ static int lookup_wild(struct autofs_poi
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
mc = source->mc;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- f = fopen(ctxt->mapname, "r");
|
|
Ian Kent |
5c19ca |
+ f = open_fopen_r(ctxt->mapname);
|
|
Ian Kent |
5c19ca |
if (!f) {
|
|
Ian Kent |
5c19ca |
error(ap->logopt,
|
|
Ian Kent |
5c19ca |
MODPREFIX "could not open map file %s", ctxt->mapname);
|
|
Ian Kent |
5c19ca |
return CHE_FAIL;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- fd = fileno(f);
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(fd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(fd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
while(1) {
|
|
Ian Kent |
5c19ca |
entry = read_one(ap->logopt, f, mkey, &k_len, mapent, &m_len);
|
|
Ian Kent |
5c19ca |
if (entry) {
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/lookup_hesiod.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/lookup_hesiod.c
|
|
Ian Kent |
5c19ca |
@@ -10,7 +10,6 @@
|
|
Ian Kent |
5c19ca |
#include <ctype.h>
|
|
Ian Kent |
5c19ca |
#include <limits.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <netinet/in.h>
|
|
Ian Kent |
5c19ca |
#include <arpa/nameser.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/lookup_hosts.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/lookup_hosts.c
|
|
Ian Kent |
5c19ca |
@@ -15,7 +15,6 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
#include <sys/stat.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/lookup_ldap.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/lookup_ldap.c
|
|
Ian Kent |
5c19ca |
@@ -21,7 +21,6 @@
|
|
Ian Kent |
5c19ca |
#include <sys/stat.h>
|
|
Ian Kent |
5c19ca |
#include <ctype.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <time.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/lookup_multi.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/lookup_multi.c
|
|
Ian Kent |
5c19ca |
@@ -18,7 +18,6 @@
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <sys/stat.h>
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#define MODULE_LOOKUP
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/lookup_nisplus.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/lookup_nisplus.c
|
|
Ian Kent |
5c19ca |
@@ -6,7 +6,6 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/lookup_program.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/lookup_program.c
|
|
Ian Kent |
5c19ca |
@@ -18,7 +18,6 @@
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
#include <sys/stat.h>
|
|
Ian Kent |
5c19ca |
@@ -193,12 +192,12 @@ int lookup_mount(struct autofs_point *ap
|
|
Ian Kent |
5c19ca |
* want to send stderr to the syslog, and we don't use spawnl()
|
|
Ian Kent |
5c19ca |
* because we need the pipe hooks
|
|
Ian Kent |
5c19ca |
*/
|
|
Ian Kent |
5c19ca |
- if (pipe(pipefd)) {
|
|
Ian Kent |
5c19ca |
+ if (open_pipe(pipefd)) {
|
|
Ian Kent |
5c19ca |
char *estr = strerror_r(errno, buf, MAX_ERR_BUF);
|
|
Ian Kent |
5c19ca |
logerr(MODPREFIX "pipe: %s", estr);
|
|
Ian Kent |
5c19ca |
goto out_free;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
- if (pipe(epipefd)) {
|
|
Ian Kent |
5c19ca |
+ if (open_pipe(epipefd)) {
|
|
Ian Kent |
5c19ca |
close(pipefd[0]);
|
|
Ian Kent |
5c19ca |
close(pipefd[1]);
|
|
Ian Kent |
5c19ca |
goto out_free;
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/lookup_userhome.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/lookup_userhome.c
|
|
Ian Kent |
5c19ca |
@@ -16,7 +16,6 @@
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
#include <pwd.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/lookup_yp.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/lookup_yp.c
|
|
Ian Kent |
5c19ca |
@@ -16,7 +16,6 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <time.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
#include <ctype.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/mount_afs.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/mount_afs.c
|
|
Ian Kent |
5c19ca |
@@ -9,8 +9,6 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/mount_autofs.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/mount_autofs.c
|
|
Ian Kent |
5c19ca |
@@ -16,8 +16,6 @@
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <signal.h>
|
|
Ian Kent |
5c19ca |
#include <alloca.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/mount_bind.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/mount_bind.c
|
|
Ian Kent |
5c19ca |
@@ -15,8 +15,6 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/mount_changer.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/mount_changer.c
|
|
Ian Kent |
5c19ca |
@@ -19,8 +19,6 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
@@ -142,25 +140,19 @@ int swapCD(const char *device, const cha
|
|
Ian Kent |
5c19ca |
{
|
|
Ian Kent |
5c19ca |
int fd; /* file descriptor for CD-ROM device */
|
|
Ian Kent |
5c19ca |
int status; /* return status for system calls */
|
|
Ian Kent |
5c19ca |
- int cl_flags;
|
|
Ian Kent |
5c19ca |
int slot = -1;
|
|
Ian Kent |
5c19ca |
int total_slots_available;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
slot = atoi(slotName) - 1;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
/* open device */
|
|
Ian Kent |
5c19ca |
- fd = open(device, O_RDONLY | O_NONBLOCK);
|
|
Ian Kent |
5c19ca |
+ fd = open_fd(device, O_RDONLY | O_NONBLOCK);
|
|
Ian Kent |
5c19ca |
if (fd < 0) {
|
|
Ian Kent |
5c19ca |
logerr(MODPREFIX "Opening device %s failed : %s",
|
|
Ian Kent |
5c19ca |
device, strerror(errno));
|
|
Ian Kent |
5c19ca |
return 1;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(fd, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(fd, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
/* Check CD player status */
|
|
Ian Kent |
5c19ca |
total_slots_available = ioctl(fd, CDROM_CHANGER_NSLOTS);
|
|
Ian Kent |
5c19ca |
if (total_slots_available <= 1) {
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/mount_ext2.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/mount_ext2.c
|
|
Ian Kent |
5c19ca |
@@ -15,8 +15,6 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/mount_generic.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/mount_generic.c
|
|
Ian Kent |
5c19ca |
@@ -15,8 +15,6 @@
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/mount_nfs.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/mount_nfs.c
|
|
Ian Kent |
5c19ca |
@@ -17,8 +17,6 @@
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
#include <netdb.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <sys/param.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/parse_hesiod.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/parse_hesiod.c
|
|
Ian Kent |
5c19ca |
@@ -7,7 +7,6 @@
|
|
Ian Kent |
5c19ca |
#include <sys/types.h>
|
|
Ian Kent |
5c19ca |
#include <ctype.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <netinet/in.h>
|
|
Ian Kent |
5c19ca |
#include <arpa/nameser.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/parse_sun.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/parse_sun.c
|
|
Ian Kent |
5c19ca |
@@ -18,8 +18,6 @@
|
|
Ian Kent |
5c19ca |
#include <stdio.h>
|
|
Ian Kent |
5c19ca |
#include <malloc.h>
|
|
Ian Kent |
5c19ca |
#include <netdb.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
#include <stdlib.h>
|
|
Ian Kent |
5c19ca |
#include <string.h>
|
|
Ian Kent |
5c19ca |
#include <ctype.h>
|
|
Ian Kent |
5c19ca |
--- autofs-5.0.3.orig/modules/replicated.c
|
|
Ian Kent |
5c19ca |
+++ autofs-5.0.3/modules/replicated.c
|
|
Ian Kent |
5c19ca |
@@ -52,8 +52,6 @@
|
|
Ian Kent |
5c19ca |
#include <net/if.h>
|
|
Ian Kent |
5c19ca |
#include <netinet/in.h>
|
|
Ian Kent |
5c19ca |
#include <netdb.h>
|
|
Ian Kent |
5c19ca |
-#include <unistd.h>
|
|
Ian Kent |
5c19ca |
-#include <fcntl.h>
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
#include "rpc_subs.h"
|
|
Ian Kent |
5c19ca |
#include "replicated.h"
|
|
Ian Kent |
5c19ca |
@@ -82,7 +80,7 @@ void seed_random(void)
|
|
Ian Kent |
5c19ca |
int fd;
|
|
Ian Kent |
5c19ca |
unsigned int seed;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- fd = open("/dev/urandom", O_RDONLY);
|
|
Ian Kent |
5c19ca |
+ fd = open_fd("/dev/urandom", O_RDONLY);
|
|
Ian Kent |
5c19ca |
if (fd < 0) {
|
|
Ian Kent |
5c19ca |
srandom(time(NULL));
|
|
Ian Kent |
5c19ca |
return;
|
|
Ian Kent |
5c19ca |
@@ -145,7 +143,7 @@ static unsigned int get_proximity(const
|
|
Ian Kent |
5c19ca |
char tmp[20], buf[MAX_ERR_BUF], *ptr;
|
|
Ian Kent |
5c19ca |
struct ifconf ifc;
|
|
Ian Kent |
5c19ca |
struct ifreq *ifr, nmptr;
|
|
Ian Kent |
5c19ca |
- int sock, cl_flags, ret, i;
|
|
Ian Kent |
5c19ca |
+ int sock, ret, i;
|
|
Ian Kent |
5c19ca |
uint32_t mask, ha, ia;
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
memcpy(tmp, host_addr, addr_len);
|
|
Ian Kent |
5c19ca |
@@ -153,18 +151,13 @@ static unsigned int get_proximity(const
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
ha = ntohl((uint32_t) hst_addr->s_addr);
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- sock = socket(AF_INET, SOCK_DGRAM, 0);
|
|
Ian Kent |
5c19ca |
+ sock = open_sock(AF_INET, SOCK_DGRAM, 0);
|
|
Ian Kent |
5c19ca |
if (sock < 0) {
|
|
Ian Kent |
5c19ca |
char *estr = strerror_r(errno, buf, MAX_ERR_BUF);
|
|
Ian Kent |
5c19ca |
logerr("socket creation failed: %s", estr);
|
|
Ian Kent |
5c19ca |
return PROXIMITY_ERROR;
|
|
Ian Kent |
5c19ca |
}
|
|
Ian Kent |
5c19ca |
|
|
Ian Kent |
5c19ca |
- if ((cl_flags = fcntl(sock, F_GETFD, 0)) != -1) {
|
|
Ian Kent |
5c19ca |
- cl_flags |= FD_CLOEXEC;
|
|
Ian Kent |
5c19ca |
- fcntl(sock, F_SETFD, cl_flags);
|
|
Ian Kent |
5c19ca |
- }
|
|
Ian Kent |
5c19ca |
-
|
|
Ian Kent |
5c19ca |
if (!alloc_ifreq(&ifc, sock)) {
|
|
Ian Kent |
5c19ca |
close(sock);
|
|
Ian Kent |
5c19ca |
return PROXIMITY_ERROR;
|