]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
repart: add extra safety check that the verity signature fits in the partition we... 29315/head
authorLennart Poettering <lennart@poettering.net>
Mon, 25 Sep 2023 17:07:09 +0000 (19:07 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 25 Sep 2023 17:10:37 +0000 (19:10 +0200)
src/partition/repart.c

index 2cc4881ada24cf39d492f346d67e458d813d6adf..da7cbe1152cf322bbd24781a2de22bde7598cc7d 100644 (file)
@@ -4159,6 +4159,9 @@ static int partition_format_verity_sig(Context *context, Partition *p) {
         if (r < 0)
                 return log_error_errno(r, "Failed to format verity signature JSON object: %m");
 
+        if (strlen(text)+1 > p->new_size)
+                return log_error_errno(SYNTHETIC_ERRNO(E2BIG), "Verity signature too long for partition: %m");
+
         r = strgrowpad0(&text, p->new_size);
         if (r < 0)
                 return log_error_errno(r, "Failed to pad string to %s", FORMAT_BYTES(p->new_size));