summaryrefslogtreecommitdiffstats
path: root/src/plugins/kdb/db2/libdb2/btree
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2007-10-22 19:18:53 +0000
committerKen Raeburn <raeburn@mit.edu>2007-10-22 19:18:53 +0000
commit3d8fa6bb4012296a53fe04e486a9157a2963b644 (patch)
tree7c0f5dcc658ebd75d758024a21097af95d616e05 /src/plugins/kdb/db2/libdb2/btree
parent70e8d7a6c50bbdb547150eba0abdef46d93d5b71 (diff)
downloadkrb5-3d8fa6bb4012296a53fe04e486a9157a2963b644.tar.gz
krb5-3d8fa6bb4012296a53fe04e486a9157a2963b644.tar.xz
krb5-3d8fa6bb4012296a53fe04e486a9157a2963b644.zip
Set close-on-exec flag in most places where file descriptors are
opened in our libraries (in case another application thread spawns a new process) and in the KDC programs (in case a plugin library spawns a new process). Checked calls to: open fopen THREEPARAMOPEN mkstemp socket accept dup dup2 pipe. In: util lib plugins kdc kadmin/server krb524. The various programs are less critical than the libraries, as any well-written plugin that spawns a new process should close all file descriptors it doesn't need to communicate with the new process. This approach also isn't bulletproof, as the call to set the close-on-exec flag is necessarily a separate call from creating the file descriptor, and the fork call could happen in between them. So plugins should be careful regardless of this patch; it will only reduce the window of potential lossage should a plugin be poorly written. (AFAIK there are currently no plugins that spawn processes where this would be a problem.) Update dependencies. ticket: 5561 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20143 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/plugins/kdb/db2/libdb2/btree')
-rw-r--r--src/plugins/kdb/db2/libdb2/btree/Makefile.in85
-rw-r--r--src/plugins/kdb/db2/libdb2/btree/bt_open.c1
2 files changed, 40 insertions, 46 deletions
diff --git a/src/plugins/kdb/db2/libdb2/btree/Makefile.in b/src/plugins/kdb/db2/libdb2/btree/Makefile.in
index 4372fac0e..6c3444814 100644
--- a/src/plugins/kdb/db2/libdb2/btree/Makefile.in
+++ b/src/plugins/kdb/db2/libdb2/btree/Makefile.in
@@ -21,75 +21,68 @@ clean-unix:: clean-libobjs
# the Makefile.in file
#
bt_close.so bt_close.po $(OUTPRE)bt_close.$(OBJEXT): \
- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/db-config.h \
+ $(BUILDTOP)/include/autoconf.h $(srcdir)/../include/config.h \
+ $(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
+ $(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
+ $(srcdir)/../mpool/mpool.h bt_close.c btree.h extern.h
+bt_conv.so bt_conv.po $(OUTPRE)bt_conv.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
$(srcdir)/../include/config.h $(srcdir)/../include/db-config.h \
$(srcdir)/../include/db-int.h $(srcdir)/../include/db-queue.h \
$(srcdir)/../include/db.h $(srcdir)/../mpool/mpool.h \
- bt_close.c btree.h extern.h
-bt_conv.so bt_conv.po $(OUTPRE)bt_conv.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
- $(BUILDTOP)/include/db-config.h $(srcdir)/../include/config.h \
+ bt_conv.c btree.h extern.h
+bt_debug.so bt_debug.po $(OUTPRE)bt_debug.$(OBJEXT): \
+ $(BUILDTOP)/include/autoconf.h $(srcdir)/../include/config.h \
$(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
$(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
- $(srcdir)/../mpool/mpool.h bt_conv.c btree.h extern.h
-bt_debug.so bt_debug.po $(OUTPRE)bt_debug.$(OBJEXT): \
- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/db-config.h \
+ $(srcdir)/../mpool/mpool.h bt_debug.c btree.h extern.h
+bt_delete.so bt_delete.po $(OUTPRE)bt_delete.$(OBJEXT): \
+ $(BUILDTOP)/include/autoconf.h $(srcdir)/../include/config.h \
+ $(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
+ $(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
+ $(srcdir)/../mpool/mpool.h bt_delete.c btree.h extern.h
+bt_get.so bt_get.po $(OUTPRE)bt_get.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
$(srcdir)/../include/config.h $(srcdir)/../include/db-config.h \
$(srcdir)/../include/db-int.h $(srcdir)/../include/db-queue.h \
$(srcdir)/../include/db.h $(srcdir)/../mpool/mpool.h \
- bt_debug.c btree.h extern.h
-bt_delete.so bt_delete.po $(OUTPRE)bt_delete.$(OBJEXT): \
- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/db-config.h \
+ bt_get.c btree.h extern.h
+bt_open.so bt_open.po $(OUTPRE)bt_open.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
+ $(SRCTOP)/include/k5-platform.h $(SRCTOP)/include/k5-thread.h \
$(srcdir)/../include/config.h $(srcdir)/../include/db-config.h \
$(srcdir)/../include/db-int.h $(srcdir)/../include/db-queue.h \
$(srcdir)/../include/db.h $(srcdir)/../mpool/mpool.h \
- bt_delete.c btree.h extern.h
-bt_get.so bt_get.po $(OUTPRE)bt_get.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
- $(BUILDTOP)/include/db-config.h $(srcdir)/../include/config.h \
- $(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
- $(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
- $(srcdir)/../mpool/mpool.h bt_get.c btree.h extern.h
-bt_open.so bt_open.po $(OUTPRE)bt_open.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
- $(BUILDTOP)/include/db-config.h $(SRCTOP)/include/k5-platform.h \
- $(SRCTOP)/include/k5-thread.h $(srcdir)/../include/config.h \
+ bt_open.c btree.h extern.h
+bt_overflow.so bt_overflow.po $(OUTPRE)bt_overflow.$(OBJEXT): \
+ $(BUILDTOP)/include/autoconf.h $(srcdir)/../include/config.h \
$(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
$(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
- $(srcdir)/../mpool/mpool.h bt_open.c btree.h extern.h
-bt_overflow.so bt_overflow.po $(OUTPRE)bt_overflow.$(OBJEXT): \
- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/db-config.h \
+ $(srcdir)/../mpool/mpool.h bt_overflow.c btree.h extern.h
+bt_page.so bt_page.po $(OUTPRE)bt_page.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
$(srcdir)/../include/config.h $(srcdir)/../include/db-config.h \
$(srcdir)/../include/db-int.h $(srcdir)/../include/db-queue.h \
$(srcdir)/../include/db.h $(srcdir)/../mpool/mpool.h \
- bt_overflow.c btree.h extern.h
-bt_page.so bt_page.po $(OUTPRE)bt_page.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
- $(BUILDTOP)/include/db-config.h $(srcdir)/../include/config.h \
- $(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
- $(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
- $(srcdir)/../mpool/mpool.h bt_page.c btree.h extern.h
+ bt_page.c btree.h extern.h
bt_put.so bt_put.po $(OUTPRE)bt_put.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
- $(BUILDTOP)/include/db-config.h $(srcdir)/../include/config.h \
- $(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
- $(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
- $(srcdir)/../mpool/mpool.h bt_put.c btree.h extern.h
-bt_search.so bt_search.po $(OUTPRE)bt_search.$(OBJEXT): \
- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/db-config.h \
$(srcdir)/../include/config.h $(srcdir)/../include/db-config.h \
$(srcdir)/../include/db-int.h $(srcdir)/../include/db-queue.h \
$(srcdir)/../include/db.h $(srcdir)/../mpool/mpool.h \
- bt_search.c btree.h extern.h
-bt_seq.so bt_seq.po $(OUTPRE)bt_seq.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
- $(BUILDTOP)/include/db-config.h $(srcdir)/../include/config.h \
+ bt_put.c btree.h extern.h
+bt_search.so bt_search.po $(OUTPRE)bt_search.$(OBJEXT): \
+ $(BUILDTOP)/include/autoconf.h $(srcdir)/../include/config.h \
$(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
$(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
- $(srcdir)/../mpool/mpool.h bt_seq.c btree.h extern.h
-bt_split.so bt_split.po $(OUTPRE)bt_split.$(OBJEXT): \
- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/db-config.h \
+ $(srcdir)/../mpool/mpool.h bt_search.c btree.h extern.h
+bt_seq.so bt_seq.po $(OUTPRE)bt_seq.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \
$(srcdir)/../include/config.h $(srcdir)/../include/db-config.h \
$(srcdir)/../include/db-int.h $(srcdir)/../include/db-queue.h \
$(srcdir)/../include/db.h $(srcdir)/../mpool/mpool.h \
- bt_split.c btree.h extern.h
+ bt_seq.c btree.h extern.h
+bt_split.so bt_split.po $(OUTPRE)bt_split.$(OBJEXT): \
+ $(BUILDTOP)/include/autoconf.h $(srcdir)/../include/config.h \
+ $(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
+ $(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
+ $(srcdir)/../mpool/mpool.h bt_split.c btree.h extern.h
bt_utils.so bt_utils.po $(OUTPRE)bt_utils.$(OBJEXT): \
- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/db-config.h \
- $(srcdir)/../include/config.h $(srcdir)/../include/db-config.h \
- $(srcdir)/../include/db-int.h $(srcdir)/../include/db-queue.h \
- $(srcdir)/../include/db.h $(srcdir)/../mpool/mpool.h \
- bt_utils.c btree.h extern.h
+ $(BUILDTOP)/include/autoconf.h $(srcdir)/../include/config.h \
+ $(srcdir)/../include/db-config.h $(srcdir)/../include/db-int.h \
+ $(srcdir)/../include/db-queue.h $(srcdir)/../include/db.h \
+ $(srcdir)/../mpool/mpool.h bt_utils.c btree.h extern.h
diff --git a/src/plugins/kdb/db2/libdb2/btree/bt_open.c b/src/plugins/kdb/db2/libdb2/btree/bt_open.c
index a18eef2cf..0f848d8ad 100644
--- a/src/plugins/kdb/db2/libdb2/btree/bt_open.c
+++ b/src/plugins/kdb/db2/libdb2/btree/bt_open.c
@@ -425,6 +425,7 @@ tmp()
#endif
if ((fd = mkstemp(path)) != -1)
(void)unlink(path);
+ set_cloexec_fd(fd);
#ifdef SIG_BLOCK
(void)sigprocmask(SIG_SETMASK, &oset, NULL);
#else