On Tue, Dec 04, 2018 at 09:21:37AM +0100, Roberto Sassu wrote: > out = (struct tpm2_pcr_read_out *)&buf.data[TPM_HEADER_SIZE]; > digest_size = be16_to_cpu(out->digest_size); > - if (digest_size > sizeof(digest->digest)) { > + if (digest_size > sizeof(digest->digest) || > + (!digest_size_ptr && digest_size != expected_digest_size)) { > rc = -EINVAL; > goto out; > } Just noticed this but you must squash 4-6 because applying only previous commits will result a broken tree. It will be much bigger commit but won't be broken. I think you should also feed min_rsp_body_length as you should be able to precalculate. Last time I was asking why this isn't a bug fix. It is even for the existing code. The existing code should have a bug fix that checks that the received digest size so that it is the expected SHA1 size before we can apply this commit. /Jarkko