projects
/
oweals
/
busybox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
getty: do not emit bogus error message on EOF
[oweals/busybox.git]
/
networking
/
httpd.c
diff --git
a/networking/httpd.c
b/networking/httpd.c
index 7ac43619a417575010ab71d1cdc5db8e157404d3..6dbc219e746e6ec5545a1d787d7c4964729dca4e 100644
(file)
--- a/
networking/httpd.c
+++ b/
networking/httpd.c
@@
-1145,13
+1145,14
@@
static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post
/* post_len <= 0 && hdr_cnt <= 0:
* no more POST data to CGI,
* let CGI see EOF on CGI's stdin */
/* post_len <= 0 && hdr_cnt <= 0:
* no more POST data to CGI,
* let CGI see EOF on CGI's stdin */
- close(toCgi_wr);
+ if (toCgi_wr != fromCgi_rd)
+ close(toCgi_wr);
toCgi_wr = 0;
}
}
/* Now wait on the set of sockets */
toCgi_wr = 0;
}
}
/* Now wait on the set of sockets */
- count = safe_poll(pfd,
3
, -1);
+ count = safe_poll(pfd,
toCgi_wr ? TO_CGI+1 : FROM_CGI+1
, -1);
if (count <= 0) {
#if 0
if (safe_waitpid(pid, &status, WNOHANG) <= 0) {
if (count <= 0) {
#if 0
if (safe_waitpid(pid, &status, WNOHANG) <= 0) {
@@
-1432,7
+1433,7
@@
static void send_cgi_and_exit(
if (script != url) { /* paranoia */
*script = '\0';
if (chdir(url + 1) != 0) {
if (script != url) { /* paranoia */
*script = '\0';
if (chdir(url + 1) != 0) {
- bb_perror_msg("chdir
%s
", url + 1);
+ bb_perror_msg("chdir
(%s)
", url + 1);
goto error_execing_cgi;
}
// not needed: *script = '/';
goto error_execing_cgi;
}
// not needed: *script = '/';
@@
-2103,8
+2104,7
@@
static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr)
header_ptr += 2;
write(proxy_fd, header_buf, header_ptr - header_buf);
free(header_buf); /* on the order of 8k, free it */
header_ptr += 2;
write(proxy_fd, header_buf, header_ptr - header_buf);
free(header_buf); /* on the order of 8k, free it */
- /* cgi_io_loop_and_exit needs to have two distinct fds */
- cgi_io_loop_and_exit(proxy_fd, dup(proxy_fd), length);
+ cgi_io_loop_and_exit(proxy_fd, proxy_fd, length);
}
#endif
}
#endif
@@
-2347,7
+2347,12
@@
int httpd_main(int argc UNUSED_PARAM, char **argv)
#endif
#if ENABLE_FEATURE_HTTPD_AUTH_MD5
if (opt & OPT_MD5) {
#endif
#if ENABLE_FEATURE_HTTPD_AUTH_MD5
if (opt & OPT_MD5) {
- puts(pw_encrypt(pass, "$1$", 1));
+ char salt[sizeof("$1$XXXXXXXX")];
+ salt[0] = '$';
+ salt[1] = '1';
+ salt[2] = '$';
+ crypt_make_salt(salt + 3, 4, 0);
+ puts(pw_encrypt(pass, salt, 1));
return 0;
}
#endif
return 0;
}
#endif