mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
Ignore unknown lines from managed proxies.
This commit is contained in:
parent
f00a8b4307
commit
a8a862c909
4
changes/bug5910
Normal file
4
changes/bug5910
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
o Minor bugfixes:
|
||||||
|
- Don't abort the managed proxy protocol if the managed proxy
|
||||||
|
sends us an unrecognized line; ignore it instead. Fixes bug
|
||||||
|
5910; bugfix on 0.2.3.9-alpha.
|
@ -119,10 +119,6 @@ static INLINE void free_execve_args(char **arg);
|
|||||||
#define PROTO_CMETHODS_DONE "CMETHODS DONE"
|
#define PROTO_CMETHODS_DONE "CMETHODS DONE"
|
||||||
#define PROTO_SMETHODS_DONE "SMETHODS DONE"
|
#define PROTO_SMETHODS_DONE "SMETHODS DONE"
|
||||||
|
|
||||||
/* The smallest valid managed proxy protocol line that can
|
|
||||||
appear. It's the size of "VERSION 1" */
|
|
||||||
#define SMALLEST_MANAGED_LINE_SIZE 9
|
|
||||||
|
|
||||||
/** Number of environment variables for managed proxy clients/servers. */
|
/** Number of environment variables for managed proxy clients/servers. */
|
||||||
#define ENVIRON_SIZE_CLIENT 3
|
#define ENVIRON_SIZE_CLIENT 3
|
||||||
#define ENVIRON_SIZE_SERVER 7 /* XXX known to be too high, but that's ok */
|
#define ENVIRON_SIZE_SERVER 7 /* XXX known to be too high, but that's ok */
|
||||||
@ -633,12 +629,6 @@ handle_proxy_line(const char *line, managed_proxy_t *mp)
|
|||||||
log_info(LD_GENERAL, "Got a line from managed proxy '%s': (%s)",
|
log_info(LD_GENERAL, "Got a line from managed proxy '%s': (%s)",
|
||||||
mp->argv[0], line);
|
mp->argv[0], line);
|
||||||
|
|
||||||
if (strlen(line) < SMALLEST_MANAGED_LINE_SIZE) {
|
|
||||||
log_warn(LD_GENERAL, "Managed proxy configuration line is too small. "
|
|
||||||
"Discarding");
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!strcmpstart(line, PROTO_ENV_ERROR)) {
|
if (!strcmpstart(line, PROTO_ENV_ERROR)) {
|
||||||
if (mp->conf_state != PT_PROTO_LAUNCHED)
|
if (mp->conf_state != PT_PROTO_LAUNCHED)
|
||||||
goto err;
|
goto err;
|
||||||
@ -712,7 +702,8 @@ handle_proxy_line(const char *line, managed_proxy_t *mp)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
log_warn(LD_CONFIG, "Unknown line received by managed proxy. (%s)", line);
|
log_notice(LD_GENERAL, "Unknown line received by managed proxy (%s).", line);
|
||||||
|
return;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
mp->conf_state = PT_PROTO_BROKEN;
|
mp->conf_state = PT_PROTO_BROKEN;
|
||||||
|
Loading…
Reference in New Issue
Block a user