diff options
Diffstat (limited to 'efibootmgr-remove-loader-path-chars-limit.patch')
-rw-r--r-- | efibootmgr-remove-loader-path-chars-limit.patch | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/efibootmgr-remove-loader-path-chars-limit.patch b/efibootmgr-remove-loader-path-chars-limit.patch index 9d2987d7d5df..a8d1067fc058 100644 --- a/efibootmgr-remove-loader-path-chars-limit.patch +++ b/efibootmgr-remove-loader-path-chars-limit.patch @@ -1,5 +1,5 @@ diff --git a/src/lib/efi.c b/src/lib/efi.c -index cc8a73a..08a98b1 100644 +index cc8a73a..c34d29f 100644 --- a/src/lib/efi.c +++ b/src/lib/efi.c @@ -476,7 +476,7 @@ make_disk_load_option(char *disk, uint8_t *buf, size_t size) @@ -11,15 +11,17 @@ index cc8a73a..08a98b1 100644 size_t needed = 0; off_t buf_offset = 0; -@@ -519,10 +519,14 @@ make_disk_load_option(char *disk, uint8_t *buf, size_t size) +@@ -519,10 +519,15 @@ make_disk_load_option(char *disk, uint8_t *buf, size_t size) return needed; buf_offset += needed; -+ os_loader_path = calloc(strlen(opts.loader)+1, sizeof(*os_loader_path)); ++ needed = (strlen(opts.loader) + 1) * sizeof (*os_loader_path); ++ os_loader_path = malloc(needed); + if (!os_loader_path) + return -1; efichar_from_char(os_loader_path, tilt_slashes(opts.loader), - sizeof(os_loader_path)); +- sizeof(os_loader_path)); ++ needed); needed = make_file_path_device_path(os_loader_path, buf + buf_offset, size == 0 ? 0 : size - buf_offset); + free(os_loader_path); |