prop224: Fix coverity warnings from #20657 merge.

- Fix various ssize_t/size_t confusions in the tests.

- Fix a weird memset argument:
  "bad_memset: Argument -16 in memset loses precision in
  memset(&desc_two->blinded_kp.pubkey.pubkey, -16, 32UL)."

- Fix check_after_deref instance in check_state_line_for_service_rev_counter():
  "check_after_deref: Null-checking items suggests that it may be null,
  but it has already been dereferenced on all paths leading to the
  check."
This commit is contained in:
George Kadianakis 2017-08-09 13:45:37 +03:00
parent 8e84968ffb
commit 21e5146529
3 changed files with 13 additions and 12 deletions

View File

@ -2111,10 +2111,9 @@ check_state_line_for_service_rev_counter(const char *state_line,
b64_key_str, rev_counter); b64_key_str, rev_counter);
done: done:
if (items) { tor_assert(items);
SMARTLIST_FOREACH(items, char*, s, tor_free(s)); SMARTLIST_FOREACH(items, char*, s, tor_free(s));
smartlist_free(items); smartlist_free(items);
}
return rev_counter; return rev_counter;
} }

View File

@ -446,14 +446,15 @@ test_establish_intro_wrong_sig(void *arg)
/* Create outgoing ESTABLISH_INTRO cell and extract its payload so that we /* Create outgoing ESTABLISH_INTRO cell and extract its payload so that we
attempt to parse it. */ attempt to parse it. */
cell_len = new_establish_intro_encoded_cell(circ_nonce, cell_body); cell_len = new_establish_intro_encoded_cell(circ_nonce, cell_body);
tt_u64_op(cell_len, OP_GT, 0); tt_i64_op(cell_len, OP_GT, 0);
/* Mutate the last byte (signature)! :) */ /* Mutate the last byte (signature)! :) */
cell_body[cell_len - 1]++; cell_body[cell_len - 1]++;
/* Receive the cell. Should fail. */ /* Receive the cell. Should fail. */
setup_full_capture_of_logs(LOG_INFO); setup_full_capture_of_logs(LOG_INFO);
retval = hs_intro_received_establish_intro(intro_circ, cell_body, cell_len); retval = hs_intro_received_establish_intro(intro_circ, cell_body,
(size_t)cell_len);
expect_log_msg_containing("Failed to verify ESTABLISH_INTRO cell."); expect_log_msg_containing("Failed to verify ESTABLISH_INTRO cell.");
teardown_capture_of_logs(); teardown_capture_of_logs();
tt_int_op(retval, ==, -1); tt_int_op(retval, ==, -1);
@ -482,14 +483,15 @@ helper_establish_intro_v3(or_circuit_t *intro_circ)
/* Create outgoing ESTABLISH_INTRO cell and extract its payload so that we /* Create outgoing ESTABLISH_INTRO cell and extract its payload so that we
* attempt to parse it. */ * attempt to parse it. */
cell_len = new_establish_intro_cell(circ_nonce, &cell); cell_len = new_establish_intro_cell(circ_nonce, &cell);
tt_u64_op(cell_len, OP_GT, 0); tt_i64_op(cell_len, OP_GT, 0);
tt_assert(cell); tt_assert(cell);
cell_len = trn_cell_establish_intro_encode(cell_body, sizeof(cell_body), cell_len = trn_cell_establish_intro_encode(cell_body, sizeof(cell_body),
cell); cell);
tt_int_op(cell_len, OP_GT, 0); tt_int_op(cell_len, OP_GT, 0);
/* Receive the cell */ /* Receive the cell */
retval = hs_intro_received_establish_intro(intro_circ, cell_body, cell_len); retval = hs_intro_received_establish_intro(intro_circ, cell_body,
(size_t) cell_len);
tt_int_op(retval, ==, 0); tt_int_op(retval, ==, 0);
done: done:
@ -521,11 +523,11 @@ helper_establish_intro_v2(or_circuit_t *intro_circ)
(char*)cell_body, (char*)cell_body,
sizeof(cell_body), key1, sizeof(cell_body), key1,
circ_nonce); circ_nonce);
tt_int_op(cell_len, >, 0); tt_int_op(cell_len, OP_GT, 0);
/* Receive legacy establish_intro */ /* Receive legacy establish_intro */
retval = hs_intro_received_establish_intro(intro_circ, retval = hs_intro_received_establish_intro(intro_circ,
cell_body, cell_len); cell_body, (size_t) cell_len);
tt_int_op(retval, ==, 0); tt_int_op(retval, ==, 0);
done: done:

View File

@ -1258,9 +1258,9 @@ test_revision_counter_state(void *arg)
/* Prepare both descriptors */ /* Prepare both descriptors */
desc_one->desc->plaintext_data.revision_counter = 42; desc_one->desc->plaintext_data.revision_counter = 42;
desc_two->desc->plaintext_data.revision_counter = 240; desc_two->desc->plaintext_data.revision_counter = 240;
memset(&desc_one->blinded_kp.pubkey.pubkey, '\x42', memset(&desc_one->blinded_kp.pubkey.pubkey, 66,
sizeof(desc_one->blinded_kp.pubkey.pubkey)); sizeof(desc_one->blinded_kp.pubkey.pubkey));
memset(&desc_two->blinded_kp.pubkey.pubkey, '\xf0', memset(&desc_two->blinded_kp.pubkey.pubkey, 240,
sizeof(desc_one->blinded_kp.pubkey.pubkey)); sizeof(desc_one->blinded_kp.pubkey.pubkey));
/* Turn the descriptor rev counters into state lines */ /* Turn the descriptor rev counters into state lines */