summaryrefslogtreecommitdiff
path: root/src/or/command.c
diff options
context:
space:
mode:
authorIsis Lovecruft <isis@torproject.org>2015-08-16 00:49:03 +0000
committerNick Mathewson <nickm@torproject.org>2015-08-17 09:26:07 -0400
commit2e0a50abf415297a3e0e10c4147f738d3458c373 (patch)
treeef78f51611cb8dd29378ff1f2d91fa5465c4e3b9 /src/or/command.c
parenta053451ddf4899d35182cd18c50a13eceb27030a (diff)
downloadtor-2e0a50abf415297a3e0e10c4147f738d3458c373.tar.gz
tor-2e0a50abf415297a3e0e10c4147f738d3458c373.zip
Remove redundant tor_free() in command_process_create_cell().
* FIXES #16823: https://bugs.torproject.org/16823 If an OP were to send a CREATE_FAST cell to an OR, and that CREATE_FAST cell had unparseable key material, then tor_free() would be called on the create cell twice. This fix removes the second (conditional on the key material being bad) call to tor_free(), so that now the create cell is always freed once, regardless of the status of the key material. (This isn't actually a double-free bug, since tor_free() sets its input to NULL, and has no effect when called with input NULL.)
Diffstat (limited to 'src/or/command.c')
-rw-r--r--src/or/command.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/or/command.c b/src/or/command.c
index 719b10736b..af6e0533d8 100644
--- a/src/or/command.c
+++ b/src/or/command.c
@@ -340,7 +340,6 @@ command_process_create_cell(cell_t *cell, channel_t *chan)
if (len < 0) {
log_warn(LD_OR,"Failed to generate key material. Closing.");
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_INTERNAL);
- tor_free(create_cell);
return;
}
created_cell.cell_type = CELL_CREATED_FAST;