File: 0002-Check-the-hash-algorithm-before-possibly-failing-to-.patch

package info (click to toggle)
imx-code-signing-tool 3.3.0%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 5,560 kB
  • sloc: ansic: 10,151; sh: 1,167; python: 384; yacc: 245; makefile: 83; lex: 59
file content (40 lines) | stat: -rw-r--r-- 1,409 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
From: Andrej Shadura <andrew.shadura@collabora.co.uk>
Date: Thu, 30 Jan 2020 17:31:36 +0100
Subject: Check the hash algorithm before (possibly failing to) malloc

malloc only accepts unsigned sizes, so failing to catch a negative
size as an errorcode will result in a malloc call with an enormous
value, leading to an allocation failure and a nonsensical error
message.

Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
---
 code/cst/code/front_end/src/acst.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/code/cst/code/front_end/src/acst.c b/code/cst/code/front_end/src/acst.c
index e382673..3f780ab 100644
--- a/code/cst/code/front_end/src/acst.c
+++ b/code/cst/code/front_end/src/acst.c
@@ -788,16 +788,17 @@ void encrypt_images(ahab_data_t *ahab_data,
 
         uint8_t hash_type = ahab_container_image_get_hash(image);
         int32_t hash_size = ahab_get_hash_size_by_sha_type(hash_type);
+
+        if (hash_size < 0) {
+            error("Unsupported hash algorithm for image integrity");
+        }
+
         uint8_t *hash = malloc(hash_size);
 
         if (NULL ==  hash) {
             error("Cannot allocate memory for the hash value of the plaintext");
         }
 
-        if (hash_size < 0) {
-            error("Unsupported hash algorithm for image integrity");
-        }
-
         /* Retrieve image data */
 
         offsets_t offsets = {