Mercurial > dropbear
comparison svr-tcpfwd.c @ 1815:5015c80808c5
Use MAX_HOST_LEN for TCP forwarding requests (#121)
tcpip-forward request can include hostname, which is later resolved by getaddrinfo() call.
Dropbear incorrectly assumes tcpip-forward includes only IP(v4) address. Fix this.
author | ValdikSS <iam@valdikss.org.ru> |
---|---|
date | Thu, 18 Mar 2021 16:16:17 +0300 |
parents | 249681d9ecda |
children | a7cc3332d8ab |
comparison
equal
deleted
inserted
replaced
1810:1b160ed94749 | 1815:5015c80808c5 |
---|---|
144 struct TCPListener tcpinfo; | 144 struct TCPListener tcpinfo; |
145 | 145 |
146 TRACE(("enter cancelremotetcp")) | 146 TRACE(("enter cancelremotetcp")) |
147 | 147 |
148 bindaddr = buf_getstring(ses.payload, &addrlen); | 148 bindaddr = buf_getstring(ses.payload, &addrlen); |
149 if (addrlen > MAX_IP_LEN) { | 149 if (addrlen > MAX_HOST_LEN) { |
150 TRACE(("addr len too long: %d", addrlen)) | 150 TRACE(("addr len too long: %d", addrlen)) |
151 goto out; | 151 goto out; |
152 } | 152 } |
153 | 153 |
154 port = buf_getint(ses.payload); | 154 port = buf_getint(ses.payload); |
179 struct Listener *listener = NULL; | 179 struct Listener *listener = NULL; |
180 | 180 |
181 TRACE(("enter remotetcpreq")) | 181 TRACE(("enter remotetcpreq")) |
182 | 182 |
183 request_addr = buf_getstring(ses.payload, &addrlen); | 183 request_addr = buf_getstring(ses.payload, &addrlen); |
184 if (addrlen > MAX_IP_LEN) { | 184 if (addrlen > MAX_HOST_LEN) { |
185 TRACE(("addr len too long: %d", addrlen)) | 185 TRACE(("addr len too long: %d", addrlen)) |
186 goto out; | 186 goto out; |
187 } | 187 } |
188 | 188 |
189 port = buf_getint(ses.payload); | 189 port = buf_getint(ses.payload); |