host: Check sscanf return value for partition number
diff --git a/host/limine.c b/host/limine.c
index 7da1894c..b7a18cd2 100644
--- a/host/limine.c
+++ b/host/limine.c
@@ -1014,7 +1014,10 @@ part_too_low:
uint32_t partition_num;
if (part_ndx != NULL) {
- sscanf(part_ndx, "%" SCNu32, &partition_num);
+ if (sscanf(part_ndx, "%" SCNu32, &partition_num) != 1) {
+ fprintf(stderr, "error: Invalid partition number format.\n");
+ goto cleanup;
+ }
partition_num--;
if (partition_num > ENDSWAP(gpt_header.number_of_partition_entries)) {
fprintf(stderr, "error: Partition number is too large.\n");
