diff -r 2c181c7baff2 lrm/lrmd/lrmd.c
--- lrm/lrmd/lrmd.c	Fri Jun 20 14:44:19 2008 +0800
+++ lrm/lrmd/lrmd.c	Mon Jun 30 16:40:43 2008 +0900
@@ -3013,6 +3013,7 @@ perform_ra_op(lrmd_op_t* op)
         GHashTable* op_params = NULL;
 	lrmd_rsc_t* rsc = NULL;
 	ra_pipe_op_t * rapop;
+	int fd;
 
 	LRMAUDIT();
 	CHECK_ALLOCATED(op, "op", HA_FAIL);
@@ -3136,6 +3137,11 @@ perform_ra_op(lrmd_op_t* op)
 				, __FUNCTION__, __LINE__, rsc->class);
 				exit(EXECRA_EXEC_UNKNOWN_ERROR);
 			}
+			/* close all descriptors except stdin/out/err */
+			for (fd = getdtablesize(); fd > STDERR_FILENO; fd--) {
+				close(fd);
+			}
+			
 			/*should we use logging daemon or not in script*/
 			setenv(HALOGD, cl_log_get_uselogd()?"yes":"no",1);
 
