diff options
Diffstat (limited to 'networking')
-rw-r--r-- | networking/httpd.c | 3 | ||||
-rw-r--r-- | networking/inetd.c | 5 | ||||
-rw-r--r-- | networking/libiproute/iptunnel.c | 4 |
3 files changed, 8 insertions, 4 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index e67e6bd64..139e913f1 100644 --- a/networking/httpd.c +++ b/networking/httpd.c | |||
@@ -1186,6 +1186,9 @@ static void send_cgi_and_exit( | |||
1186 | * and send it to the peer. So please no SIGPIPEs! */ | 1186 | * and send it to the peer. So please no SIGPIPEs! */ |
1187 | signal(SIGPIPE, SIG_IGN); | 1187 | signal(SIGPIPE, SIG_IGN); |
1188 | 1188 | ||
1189 | /* Accound for POSTDATA already in hdr_buf */ | ||
1190 | bodyLen -= hdr_cnt; | ||
1191 | |||
1189 | /* This loop still looks messy. What is an exit criteria? | 1192 | /* This loop still looks messy. What is an exit criteria? |
1190 | * "CGI's output closed"? Or "CGI has exited"? | 1193 | * "CGI's output closed"? Or "CGI has exited"? |
1191 | * What to do if CGI has closed both input and output, but | 1194 | * What to do if CGI has closed both input and output, but |
diff --git a/networking/inetd.c b/networking/inetd.c index e4e9f95b0..85e9ae732 100644 --- a/networking/inetd.c +++ b/networking/inetd.c | |||
@@ -734,7 +734,8 @@ static servtab_t *getconfigent(void) | |||
734 | /* if ((arg = skip(&cp, 1)) == NULL) */ | 734 | /* if ((arg = skip(&cp, 1)) == NULL) */ |
735 | /* goto more; */ | 735 | /* goto more; */ |
736 | 736 | ||
737 | sep->se_server = xxstrdup(skip(&cp)); | 737 | arg = skip(&cp); |
738 | sep->se_server = xxstrdup(arg); | ||
738 | if (strcmp(sep->se_server, "internal") == 0) { | 739 | if (strcmp(sep->se_server, "internal") == 0) { |
739 | #ifdef INETD_FEATURE_ENABLED | 740 | #ifdef INETD_FEATURE_ENABLED |
740 | const struct builtin *bi; | 741 | const struct builtin *bi; |
@@ -759,7 +760,7 @@ static servtab_t *getconfigent(void) | |||
759 | sep->se_bi = NULL; | 760 | sep->se_bi = NULL; |
760 | #endif | 761 | #endif |
761 | argc = 0; | 762 | argc = 0; |
762 | for (arg = skip(&cp); cp; arg = skip(&cp)) { | 763 | for (; cp; arg = skip(&cp)) { |
763 | if (argc < MAXARGV) | 764 | if (argc < MAXARGV) |
764 | sep->se_argv[argc++] = xxstrdup(arg); | 765 | sep->se_argv[argc++] = xxstrdup(arg); |
765 | } | 766 | } |
diff --git a/networking/libiproute/iptunnel.c b/networking/libiproute/iptunnel.c index 2b1713556..6d3a74165 100644 --- a/networking/libiproute/iptunnel.c +++ b/networking/libiproute/iptunnel.c | |||
@@ -241,12 +241,12 @@ static void parse_args(int argc, char **argv, int cmd, struct ip_tunnel_parm *p) | |||
241 | } else if (key == ARG_remote) { | 241 | } else if (key == ARG_remote) { |
242 | NEXT_ARG(); | 242 | NEXT_ARG(); |
243 | key = index_in_strings(keywords, *argv); | 243 | key = index_in_strings(keywords, *argv); |
244 | if (key == ARG_any) | 244 | if (key != ARG_any) |
245 | p->iph.daddr = get_addr32(*argv); | 245 | p->iph.daddr = get_addr32(*argv); |
246 | } else if (key == ARG_local) { | 246 | } else if (key == ARG_local) { |
247 | NEXT_ARG(); | 247 | NEXT_ARG(); |
248 | key = index_in_strings(keywords, *argv); | 248 | key = index_in_strings(keywords, *argv); |
249 | if (key == ARG_any) | 249 | if (key != ARG_any) |
250 | p->iph.saddr = get_addr32(*argv); | 250 | p->iph.saddr = get_addr32(*argv); |
251 | } else if (key == ARG_dev) { | 251 | } else if (key == ARG_dev) { |
252 | NEXT_ARG(); | 252 | NEXT_ARG(); |