BUG/MINOR: cli: fix out of bounds in -S parser

Out of bounds when the number or arguments is greater than
MAX_LINE_ARGS.

Fix issue #377.

Must be backported in 2.0 and 1.9.
This commit is contained in:
William Lallemand 2019-11-25 09:58:37 +01:00 committed by William Lallemand
parent c8bb1539cb
commit 2e945c8ee7

View File

@ -2526,7 +2526,7 @@ int mworker_cli_proxy_new_listener(char *line)
int arg; int arg;
int cur_arg; int cur_arg;
arg = 0; arg = 1;
args[0] = line; args[0] = line;
/* args is a bind configuration with spaces replaced by commas */ /* args is a bind configuration with spaces replaced by commas */
@ -2536,12 +2536,12 @@ int mworker_cli_proxy_new_listener(char *line)
*line++ = '\0'; *line++ = '\0';
while (*line == ',') while (*line == ',')
line++; line++;
args[++arg] = line; args[arg++] = line;
} }
line++; line++;
} }
args[++arg] = "\0"; args[arg] = "\0";
bind_conf = bind_conf_alloc(mworker_proxy, "master-socket", 0, "", xprt_get(XPRT_RAW)); bind_conf = bind_conf_alloc(mworker_proxy, "master-socket", 0, "", xprt_get(XPRT_RAW));
if (!bind_conf) if (!bind_conf)