diff mbox series

[1/1] efi_loader: sanitize efi_tcg2_final_events_table definition

Message ID 20240410225043.40100-1-heinrich.schuchardt@canonical.com
State Accepted, archived
Commit 5884481e2a2613ae5f3b9c1dab0671acd88ca961
Delegated to: Heinrich Schuchardt
Headers show
Series [1/1] efi_loader: sanitize efi_tcg2_final_events_table definition | expand

Commit Message

Heinrich Schuchardt April 10, 2024, 10:50 p.m. UTC
The length of the variable name typically is not 1.
Neither the length of the variable name nor the size of the appended
data is known in the include.

* Define the size of element variable_name as variable.
* Remove the unusable element variable_data.

Addresses-Coverity-ID: 467400 Out-of-bounds read
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
---
 include/efi_tcg2.h | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

Comments

Ilias Apalodimas April 11, 2024, 8:36 a.m. UTC | #1
On Thu, 11 Apr 2024 at 00:50, Heinrich Schuchardt
<heinrich.schuchardt@canonical.com> wrote:
>
> The length of the variable name typically is not 1.
> Neither the length of the variable name nor the size of the appended
> data is known in the include.
>
> * Define the size of element variable_name as variable.
> * Remove the unusable element variable_data.
>
> Addresses-Coverity-ID: 467400 Out-of-bounds read
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> ---
>  include/efi_tcg2.h | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/include/efi_tcg2.h b/include/efi_tcg2.h
> index b21c5cb3dd6..a75b5a35b6e 100644
> --- a/include/efi_tcg2.h
> +++ b/include/efi_tcg2.h
> @@ -150,16 +150,14 @@ struct efi_tcg2_final_events_table {
>   *                             the variable.
>   * @variable_data_length:      The size of the variable data.
>   * @unicode_name:              The CHAR16 unicode name of the variable
> - *                             without NULL-terminator.
> - * @variable_data:             The data parameter of the efi variable
> - *                             in the GetVariable() API.
> + *                             without NULL-terminator followed by data.
>   */
>  struct efi_tcg2_uefi_variable_data {
>         efi_guid_t variable_name;
>         u64 unicode_name_length;
>         u64 variable_data_length;
> -       u16 unicode_name[1];
> -       u8 variable_data[1];
> +       u16 unicode_name[];
> +       // u8 variable_data[];
>  };
>
>  /**
> --
> 2.43.0
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff mbox series

Patch

diff --git a/include/efi_tcg2.h b/include/efi_tcg2.h
index b21c5cb3dd6..a75b5a35b6e 100644
--- a/include/efi_tcg2.h
+++ b/include/efi_tcg2.h
@@ -150,16 +150,14 @@  struct efi_tcg2_final_events_table {
  *				the variable.
  * @variable_data_length:	The size of the variable data.
  * @unicode_name:		The CHAR16 unicode name of the variable
- *				without NULL-terminator.
- * @variable_data:		The data parameter of the efi variable
- *				in the GetVariable() API.
+ *				without NULL-terminator followed by data.
  */
 struct efi_tcg2_uefi_variable_data {
 	efi_guid_t variable_name;
 	u64 unicode_name_length;
 	u64 variable_data_length;
-	u16 unicode_name[1];
-	u8 variable_data[1];
+	u16 unicode_name[];
+	// u8 variable_data[];
 };
 
 /**