Skip to content

Commit 1ff90d2

Browse files
committed
Dont leaks descriptors
1 parent 33633d3 commit 1ff90d2

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

audisp/plugins/ids/reactions.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@ static int safe_exec(const char *exe, ...)
5353
/* Child */
5454
sigfillset (&sa.sa_mask);
5555
sigprocmask (SIG_UNBLOCK, &sa.sa_mask, 0);
56+
#ifdef HAVE_CLOSE_RANGE
57+
close_range(3, ~0U, 0); /* close all past stderr */
58+
#else
59+
for (i=3; i<24; i++) /* Arbitrary number */
60+
close(i);
61+
#endif
5662

5763
va_start(ap, exe);
5864
for (i = 1; va_arg(ap, char *) != NULL; i++);

audisp/plugins/remote/audisp-remote.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,12 @@ static void safe_exec(const char *exe, const char *message)
275275
/* Child */
276276
sigfillset (&sa.sa_mask);
277277
sigprocmask (SIG_UNBLOCK, &sa.sa_mask, 0);
278+
#ifdef HAVE_CLOSE_RANGE
279+
close_range(3, ~0U, 0); /* close all past stderr */
280+
#else
281+
for (i=3; i<24; i++) /* Arbitrary number */
282+
close(i);
283+
#endif
278284

279285
argv[0] = (char *)exe;
280286
argv[1] = (char *)message;

src/auditd-event.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1523,6 +1523,12 @@ static pid_t safe_exec(const char *exe)
15231523
/* Child */
15241524
sigfillset(&sa.sa_mask);
15251525
sigprocmask(SIG_UNBLOCK, &sa.sa_mask, 0);
1526+
#ifdef HAVE_CLOSE_RANGE
1527+
close_range(3, ~0U, 0); /* close all past stderr */
1528+
#else
1529+
for (i=3; i<24; i++) /* Arbitrary number */
1530+
close(i);
1531+
#endif
15261532

15271533
argv[0] = (char *)exe;
15281534
argv[1] = NULL;

0 commit comments

Comments
 (0)