Annotation of /trunk/busybox/patches/busybox-1.19.2-inetd.patch
Parent Directory | Revision Log
Revision 1541 -
(hide annotations)
(download)
Mon Sep 26 15:52:03 2011 UTC (13 years ago) by niro
File size: 1616 byte(s)
Mon Sep 26 15:52:03 2011 UTC (13 years ago) by niro
File size: 1616 byte(s)
-added upstream patches
1 | niro | 1541 | --- busybox-1.19.2/networking/inetd.c |
2 | +++ busybox-1.19.2-inetd/networking/inetd.c | ||
3 | @@ -1278,6 +1278,7 @@ int inetd_main(int argc UNUSED_PARAM, ch | ||
4 | sep->se_count = 0; | ||
5 | rearm_alarm(); /* will revive it in RETRYTIME sec */ | ||
6 | restore_sigmask(&omask); | ||
7 | + maybe_close(new_udp_fd); | ||
8 | maybe_close(accepted_fd); | ||
9 | continue; /* -> check next fd in fd set */ | ||
10 | } | ||
11 | @@ -1298,17 +1299,18 @@ int inetd_main(int argc UNUSED_PARAM, ch | ||
12 | bb_perror_msg("vfork"+1); | ||
13 | sleep(1); | ||
14 | restore_sigmask(&omask); | ||
15 | + maybe_close(new_udp_fd); | ||
16 | maybe_close(accepted_fd); | ||
17 | continue; /* -> check next fd in fd set */ | ||
18 | } | ||
19 | if (pid == 0) | ||
20 | pid--; /* -1: "we did fork and we are child" */ | ||
21 | } | ||
22 | - /* if pid == 0 here, we never forked */ | ||
23 | + /* if pid == 0 here, we didn't fork */ | ||
24 | |||
25 | if (pid > 0) { /* parent */ | ||
26 | if (sep->se_wait) { | ||
27 | - /* tcp wait: we passed listening socket to child, | ||
28 | + /* wait: we passed socket to child, | ||
29 | * will wait for child to terminate */ | ||
30 | sep->se_wait = pid; | ||
31 | remove_fd_from_set(sep->se_fd); | ||
32 | @@ -1345,9 +1347,13 @@ int inetd_main(int argc UNUSED_PARAM, ch | ||
33 | setsid(); | ||
34 | /* "nowait" udp */ | ||
35 | if (new_udp_fd >= 0) { | ||
36 | - len_and_sockaddr *lsa = xzalloc_lsa(sep->se_family); | ||
37 | + len_and_sockaddr *lsa; | ||
38 | + int r; | ||
39 | + | ||
40 | + close(new_udp_fd); | ||
41 | + lsa = xzalloc_lsa(sep->se_family); | ||
42 | /* peek at the packet and remember peer addr */ | ||
43 | - int r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT, | ||
44 | + r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT, | ||
45 | &lsa->u.sa, &lsa->len); | ||
46 | if (r < 0) | ||
47 | goto do_exit1; |