From f4c89796b6866d84a6bcc37ea0157dbbbf33de0c Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Mon, 6 Mar 2017 16:33:57 -0600 Subject: [PATCH] UPSTREAM: lib/tpm2_marshaling: fix in correct buffer space semantics marshal_blob() was setting an unsigned size (size_t) to a value of -1 when an error is determined. This is wrong for the current implementation of the code because the code assumes the buffer space gets set to 0. Setting an unsigned value to -1 effectively tells the library the buffer has unlimited amount of space. BUG=b:35775104 Change-Id: I0c823447bb771094a8fc5fce0fd0bb62fdcfcd14 Signed-off-by: Patrick Georgi Original-Commit-Id: 06f12f919f4b7acde88392fd9dce461701ef994e Original-Change-Id: I677a1fd7528bef3ea7420d0a8d0a290e9b15cea3 Original-Signed-off-by: Aaron Durbin Original-Reviewed-on: https://review.coreboot.org/18678 Original-Reviewed-by: Duncan Laurie Original-Reviewed-by: Furquan Shaikh Original-Tested-by: build bot (Jenkins) Reviewed-on: https://chromium-review.googlesource.com/452885 --- src/lib/tpm2_marshaling.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/tpm2_marshaling.c b/src/lib/tpm2_marshaling.c index 38c8d2f05c..dd046d27a1 100644 --- a/src/lib/tpm2_marshaling.c +++ b/src/lib/tpm2_marshaling.c @@ -100,7 +100,7 @@ static void marshal_blob(void **buffer, void *blob, size_t blob_size, size_t *buffer_space) { if (*buffer_space < blob_size) { - *buffer_space = -1; + *buffer_space = 0; return; }