2008-02-25 10:21:33 +00:00
|
|
|
diff -up iputils-s20071127/rdisc.c.open_max iputils-s20071127/rdisc.c
|
|
|
|
--- iputils-s20071127/rdisc.c.open_max 2008-02-25 11:15:37.000000000 +0100
|
|
|
|
+++ iputils-s20071127/rdisc.c 2008-02-25 11:17:30.000000000 +0100
|
|
|
|
@@ -240,14 +240,25 @@ void do_fork(void)
|
2007-08-07 10:09:32 +00:00
|
|
|
{
|
|
|
|
int t;
|
|
|
|
pid_t pid;
|
2008-02-25 10:21:33 +00:00
|
|
|
+ long open_max;
|
|
|
|
|
2007-08-07 10:09:32 +00:00
|
|
|
if (trace)
|
|
|
|
return;
|
|
|
|
+ if ((open_max = sysconf(_SC_OPEN_MAX)) == -1) {
|
|
|
|
+ if (errno == 0) {
|
|
|
|
+ (void) fprintf(stderr, "OPEN_MAX is not supported\n");
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ (void) fprintf(stderr, "sysconf() error\n");
|
|
|
|
+ }
|
|
|
|
+ exit(1);
|
2008-02-25 10:21:33 +00:00
|
|
|
+ }
|
2007-08-07 10:09:32 +00:00
|
|
|
+
|
2008-02-25 10:21:33 +00:00
|
|
|
|
2007-08-07 10:09:32 +00:00
|
|
|
if ((pid=fork()) != 0)
|
|
|
|
exit(0);
|
|
|
|
|
|
|
|
- for (t = 0; t < OPEN_MAX; t++)
|
|
|
|
+ for (t = 0; t < open_max; t++)
|
|
|
|
if (t != s)
|
|
|
|
close(t);
|
|
|
|
|