41 lines
1.0 KiB
Diff
41 lines
1.0 KiB
Diff
|
http://wl500g.googlecode.com/svn/trunk/dropbear/011-fwd-all-segfault.patch
|
||
|
https://dev.openwrt.org/ticket/10339
|
||
|
|
||
|
--- a/svr-tcpfwd.c
|
||
|
+++ b/svr-tcpfwd.c
|
||
|
@@ -210,15 +210,13 @@ static int svr_remotetcpreq() {
|
||
|
tcpinfo->chantype = &svr_chan_tcpremote;
|
||
|
tcpinfo->tcp_type = forwarded;
|
||
|
|
||
|
- if (!opts.listen_fwd_all
|
||
|
- || (strcmp(tcpinfo->listenaddr, "localhost") == 0) ) {
|
||
|
- // NULL means "localhost only"
|
||
|
- tcpinfo->listenaddr = NULL;
|
||
|
- }
|
||
|
- else
|
||
|
- {
|
||
|
- tcpinfo->listenaddr = bindaddr;
|
||
|
- }
|
||
|
+ if (!opts.listen_fwd_all || (strcmp(bindaddr, "localhost") == 0) ) {
|
||
|
+ // NULL means "localhost only"
|
||
|
+ tcpinfo->listenaddr = NULL;
|
||
|
+ }
|
||
|
+ else {
|
||
|
+ tcpinfo->listenaddr = bindaddr;
|
||
|
+ }
|
||
|
|
||
|
ret = listen_tcpfwd(tcpinfo);
|
||
|
|
||
|
--- a/tcp-accept.c
|
||
|
+++ b/tcp-accept.c
|
||
|
@@ -80,6 +80,9 @@ static void tcp_acceptor(struct Listener
|
||
|
addr = tcpinfo->listenaddr;
|
||
|
port = tcpinfo->listenport;
|
||
|
}
|
||
|
+ if (!addr) {
|
||
|
+ addr = "localhost";
|
||
|
+ }
|
||
|
|
||
|
buf_putstring(ses.writepayload, addr, strlen(addr));
|
||
|
buf_putint(ses.writepayload, port);
|