Fix read of wrong buffer (and OOB) in surjectionproof tests

This commit is contained in:
Tim Ruffing 2019-06-04 14:33:08 +02:00
parent 6f3b0c05c2
commit 55311b0e03

View File

@ -422,7 +422,7 @@ static void test_gen_verify(size_t n_inputs, size_t n_used) {
/* trailing garbage */ /* trailing garbage */
memcpy(&serialized_proof_trailing, &serialized_proof, serialized_len); memcpy(&serialized_proof_trailing, &serialized_proof, serialized_len);
serialized_proof_trailing[serialized_len] = seed[0]; serialized_proof_trailing[serialized_len] = seed[0];
CHECK(secp256k1_surjectionproof_parse(ctx, &proof, serialized_proof, serialized_len + 1) == 0); CHECK(secp256k1_surjectionproof_parse(ctx, &proof, serialized_proof_trailing, serialized_len + 1) == 0);
CHECK(secp256k1_surjectionproof_parse(ctx, &proof, serialized_proof, serialized_len)); CHECK(secp256k1_surjectionproof_parse(ctx, &proof, serialized_proof, serialized_len));
result = secp256k1_surjectionproof_verify(ctx, &proof, ephemeral_input_tags, n_inputs, &ephemeral_input_tags[n_inputs]); result = secp256k1_surjectionproof_verify(ctx, &proof, ephemeral_input_tags, n_inputs, &ephemeral_input_tags[n_inputs]);