mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Stop modifying const argument in handle_control_postdescriptor
Fixes 15546.
This commit is contained in:
parent
c3e8b7f2da
commit
d59c4063f3
4
changes/bug15546
Normal file
4
changes/bug15546
Normal file
@ -0,0 +1,4 @@
|
||||
o Minor bugfixes:
|
||||
- For correctness, avoid modifying a constant string in
|
||||
handle_control_postdescriptor. Fixes bug 15546; bugfix on
|
||||
0.1.1.16-rc.
|
@ -2733,12 +2733,14 @@ handle_control_postdescriptor(control_connection_t *conn, uint32_t len,
|
||||
uint8_t purpose = ROUTER_PURPOSE_GENERAL;
|
||||
int cache = 0; /* eventually, we may switch this to 1 */
|
||||
|
||||
char *cp = memchr(body, '\n', len);
|
||||
const char *cp = memchr(body, '\n', len);
|
||||
smartlist_t *args = smartlist_new();
|
||||
tor_assert(cp);
|
||||
*cp++ = '\0';
|
||||
++cp;
|
||||
|
||||
smartlist_split_string(args, body, " ",
|
||||
char *cmdline = tor_memdup_nulterm(body, cp-body);
|
||||
|
||||
smartlist_split_string(args, cmdline, " ",
|
||||
SPLIT_SKIP_SPACE|SPLIT_IGNORE_BLANK, 0);
|
||||
SMARTLIST_FOREACH_BEGIN(args, char *, option) {
|
||||
if (!strcasecmpstart(option, "purpose=")) {
|
||||
@ -2787,6 +2789,7 @@ handle_control_postdescriptor(control_connection_t *conn, uint32_t len,
|
||||
done:
|
||||
SMARTLIST_FOREACH(args, char *, arg, tor_free(arg));
|
||||
smartlist_free(args);
|
||||
tor_free(cmdline);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user