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);