]> xenbits.xensource.com Git - seabios.git/commitdiff
tpm: Require a response to have minimum size of a valid response header
authorStefan Berger <stefanb@linux.vnet.ibm.com>
Wed, 6 Nov 2019 21:35:59 +0000 (16:35 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Wed, 13 Nov 2019 15:25:02 +0000 (10:25 -0500)
Defend against a broken TPM 1.2 or TPM 2.0 that doesn't send at least
a full response header in the response but less than 10 bytes.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
src/hw/tpm_drivers.c

index e4770b35e4a5a5f5d2d70c41c96d66f8e01501bd..2b5753c133fc74b7af52b74b5f427a27815d03d5 100644 (file)
@@ -620,7 +620,8 @@ tpmhw_transmit(u8 locty, struct tpm_req_header *req,
         return -1;
 
     irc = td->readresp(respbuffer, respbufferlen);
-    if (irc != 0)
+    if (irc != 0 ||
+        *respbufferlen < sizeof(struct tpm_rsp_header))
         return -1;
 
     td->ready();