busybox/networking
Denys Vlasenko bae8f7eaf2 httpd: do not percent-decode URI if proxying
The proxying is documented as follows:

P:/url:[http://]hostname[:port]/new/path

Howeverm urlcopy is not a true copy anymore when it is fdprint'ed
to proxy_fd, this is because percent_decode_in_place() is called
after the copy is created.

This breaks reverse proxying all URIs containing percent
encoded spaces, e.g. - because a decoded URI will be printed out
to proxy_fd instead of the original.

The fix keeps the logic in place to canonicalize the uri first,
before reverse proxying (one could argue that the uri
should be proxied completely unaltered, except for the prefix
rewrite).

function                                             old     new   delta
handle_incoming_and_exit                            2752    2792     +40

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-04-16 10:07:33 +02:00
..
libiproute ipaddress: remove unused variable no_link 2019-04-07 18:09:37 +02:00
ssl_helper networking/ssl_helper: experimental matrixssl-based ssl helper 2014-02-23 23:31:13 +01:00
ssl_helper-wolfssl Update information on building httpd and wget helpers 2016-12-22 15:13:37 +01:00
udhcp udhcpc6: code shrink 2019-04-14 17:01:10 +02:00
arp.c config: update size information 2018-12-28 03:20:17 +01:00
arping.c config: update size information 2018-12-28 03:20:17 +01:00
brctl.c brctl: add TODO: "showmacs BR" 2019-04-13 15:48:31 +02:00
Config.src tls: introduce FEATURE_TLS_SHA1 to make SHA1 code optional 2018-12-10 16:14:58 +01:00
dnsd.c config: deindent all help texts 2017-07-21 09:50:55 +02:00
ether-wake.c config: update size information 2018-12-28 03:20:17 +01:00
ftpd.c ftpd: allow -A if !FTPD_AUTHENTICATION as well 2018-04-07 14:18:42 +02:00
ftpgetput.c config: update size information 2018-12-28 03:20:17 +01:00
hostname.c config: update size information 2018-12-28 03:20:17 +01:00
httpd_helpers.sh Update information on building httpd and wget helpers 2016-12-22 15:13:37 +01:00
httpd_indexcgi.c httpd_indexcgi.c: fix compile failure 2012-09-03 12:20:10 +02:00
httpd_post_upload.cgi Make POST upload example script easier to use 2016-12-22 15:33:11 +01:00
httpd_ssi.c whitespace fixes. no code changes 2013-01-14 01:34:48 +01:00
httpd.c httpd: do not percent-decode URI if proxying 2019-04-16 10:07:33 +02:00
ifconfig.c networking/interface.c: get rid of global "smallint interface_opt_a" 2018-03-05 17:46:17 +01:00
ifenslave.c getopt32: remove applet_long_options 2017-08-08 17:09:40 +02:00
ifplugd.c config: update size information 2018-12-28 03:20:17 +01:00
ifupdown.c config: update size information 2018-12-28 03:20:17 +01:00
inetd.c do not duplicate CONFIG_PID_FILE_PATH and ".pid" strings 2019-03-17 19:48:39 +01:00
interface.c networking/interface.c: get rid of global data 2018-03-05 18:30:33 +01:00
ip.c config: update size information 2018-12-28 03:20:17 +01:00
ipcalc.c config: update size information 2018-12-28 03:20:17 +01:00
isrv_identd.c config: update size information 2018-12-28 03:20:17 +01:00
isrv.c Spelling fixes in comments, documentation, tests and examples 2017-04-17 16:13:32 +02:00
isrv.h fixlet for the previous commit #2 2014-01-09 20:09:43 +01:00
Kbuild.src Convert all networking/* applets to "new style" applet definitions 2016-11-23 09:05:14 +01:00
nameif.c regularize format of source file headers, no code changes 2017-09-18 16:28:43 +02:00
nbd-client.c config: update size information 2018-12-28 03:20:17 +01:00
nc_bloaty.c nc: fix the !NC_SERVER configuration 2018-05-24 16:38:40 +02:00
nc.c whitespace and comment format fixes, no code changes 2017-10-05 15:19:25 +02:00
netstat.c netstat: produce numeric-ip output for non-resolved names 2018-03-27 23:28:53 +02:00
nslookup.c nslookup: return exitcode 1 on resolution errors 2019-01-09 13:38:57 +01:00
ntpd.c ntpd: do not create pid file if not backgrounded 2019-03-27 13:47:38 +01:00
ntpd.diff ntpd: add experimental patch 2016-03-04 07:36:04 +01:00
parse_pasv_epsv.c fix a thinko in parse_pasv_epsv.c 2018-02-06 17:11:15 +01:00
ping.c config: update size information 2018-12-28 03:20:17 +01:00
pscan.c config: update size information 2018-12-28 03:20:17 +01:00
route.c config: update size information 2018-12-28 03:20:17 +01:00
slattach.c config: update size information 2018-12-28 03:20:17 +01:00
ssl_client.c config: update size information 2018-12-28 03:20:17 +01:00
tc.c config: update size information 2018-12-28 03:20:17 +01:00
tcpudp_perhost.c tcpudp: shrink per-host rate-limiting code 2018-02-27 13:03:44 +01:00
tcpudp_perhost.h tcpudp: shrink per-host rate-limiting code 2018-02-27 13:03:44 +01:00
tcpudp.c config: update size information 2018-12-28 03:20:17 +01:00
telnet.c telnet: placate compiler's warning 2019-01-09 13:12:58 +01:00
telnetd.c telnetd: whitespace fix 2019-04-04 16:54:14 +02:00
telnetd.ctrlSQ.patch *: slap on a few ALIGN1/2s where appropriate 2016-04-22 18:09:21 +02:00
telnetd.IAC_test.sh telnetd: fix corner case of input processing of 0xff bytes 2016-10-12 19:13:46 +02:00
tftp.c config: more tweaks 2018-12-28 17:52:43 +01:00
tls_aes.c tls: in AES-CBC code, do not set key for every record - do it once 2018-11-23 18:02:44 +01:00
tls_aes.h tls: in AES-CBC code, do not set key for every record - do it once 2018-11-23 18:02:44 +01:00
tls_aesgcm.c tls: AES-GCM: in GMULT, avoid memcpy, use one less variable in bit loop 2018-12-08 21:24:38 +01:00
tls_aesgcm.h tls: in AES-GCM decoding, avoid memmove 2018-11-24 13:51:46 +01:00
tls_fe.c tls: code shrink 2019-01-10 20:18:02 +01:00
tls_fe.h tls: add support for TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 cipher 2018-11-23 17:48:07 +01:00
tls_pstm_montgomery_reduce.c tls: pstm code shrink 2019-01-01 15:40:43 +01:00
tls_pstm_mul_comba.c tls: pstm code shrink 2019-01-01 15:40:43 +01:00
tls_pstm_sqr_comba.c tls: pstm code shrink 2019-01-01 15:40:43 +01:00
tls_pstm.c tls: pstm code shrink 2019-01-01 15:40:43 +01:00
tls_pstm.h tls: pstm code shrink 2019-01-01 15:40:43 +01:00
tls_rsa.c tls: pstm code shrink 2019-01-01 15:40:43 +01:00
tls_rsa.h tls: do not leak RSA key 2018-11-25 16:17:26 +01:00
tls_symmetric.h tls: set TLS_DEBUG to 0; placate a gcc indentation warning 2017-01-23 01:15:13 +01:00
tls.c tls: add comment about dl.fedoraproject.org needing secp256r1 ECC curve 2019-01-08 16:09:41 +01:00
tls.h tls: speed up xor'ing of aligned 16-byte buffers 2018-11-24 14:08:29 +01:00
traceroute.c config: update size information 2018-12-28 03:20:17 +01:00
tunctl.c config: update size information 2018-12-28 03:20:17 +01:00
vconfig.c config: update size information 2018-12-28 03:20:17 +01:00
wget.c wget: detect when the length of received file is less than advertised 2019-01-21 13:53:26 +01:00
whois.c config: update size information 2018-12-28 03:20:17 +01:00
zcip.c config: update size information 2018-12-28 03:20:17 +01:00