[package] busybox: update to 1.19.2 (thanks to Peter Wagner)
[openwrt/svn-archive/archive.git] / package / busybox / patches / 000-upstream-inetd.patch
1 --- a/networking/inetd.c
2 +++ b/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;