Fossil SCM

Make sure the backoffice has all file descriptors closed before it starts.

drh 2018-08-08 14:08 trunk
Commit 15f85cfdaaf9918e3df60f8b15b56f978486467e5516c84b2e245e6a8be6c339
1 file changed +2
--- src/backoffice.c
+++ src/backoffice.c
@@ -644,11 +644,13 @@
644644
GETPID(), (int)pid);
645645
return;
646646
}
647647
if( pid==0 ){
648648
/* This is the child of a successful fork(). Run backoffice. */
649
+ int i;
649650
setsid();
651
+ for(i=3; close(i)==0 || i<10; i++){}
650652
db_open_repository(backofficeDb);
651653
backofficeDb = "x";
652654
backoffice_thread();
653655
db_close(1);
654656
backofficeTrace("/***** Backoffice Child %d exits *****/\n", GETPID());
655657
--- src/backoffice.c
+++ src/backoffice.c
@@ -644,11 +644,13 @@
644 GETPID(), (int)pid);
645 return;
646 }
647 if( pid==0 ){
648 /* This is the child of a successful fork(). Run backoffice. */
 
649 setsid();
 
650 db_open_repository(backofficeDb);
651 backofficeDb = "x";
652 backoffice_thread();
653 db_close(1);
654 backofficeTrace("/***** Backoffice Child %d exits *****/\n", GETPID());
655
--- src/backoffice.c
+++ src/backoffice.c
@@ -644,11 +644,13 @@
644 GETPID(), (int)pid);
645 return;
646 }
647 if( pid==0 ){
648 /* This is the child of a successful fork(). Run backoffice. */
649 int i;
650 setsid();
651 for(i=3; close(i)==0 || i<10; i++){}
652 db_open_repository(backofficeDb);
653 backofficeDb = "x";
654 backoffice_thread();
655 db_close(1);
656 backofficeTrace("/***** Backoffice Child %d exits *****/\n", GETPID());
657

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button