From 7867d23e452977eb649ebed4e751406dd276b5d8 Mon Sep 17 00:00:00 2001 From: mintsuki Date: Sat, 24 Oct 2020 15:27:30 +0200 Subject: [PATCH] Fix bug in elf lib where a very large buffer could be accidentally allocated on the stack --- limine.bin | Bin 32768 -> 32768 bytes stage2/lib/elf.c | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/limine.bin b/limine.bin index 8d09935d0a25728b2b54dc1af8227809a61ee65b..a56fc99064dab5824088421849daad09c9df88b3 100644 GIT binary patch delta 22348 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 D?gwx^ delta 22347 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 Cm8$aq diff --git a/stage2/lib/elf.c b/stage2/lib/elf.c index 2d65bad4..afefe97b 100644 --- a/stage2/lib/elf.c +++ b/stage2/lib/elf.c @@ -206,7 +206,7 @@ int elf64_load_section(struct file_handle *fd, void *buffer, const char *name, s fread(fd, &shstrtab, hdr.shoff + hdr.shstrndx * sizeof(struct elf64_shdr), sizeof(struct elf64_shdr)); - char names[shstrtab.sh_size]; + char *names = ext_mem_alloc(shstrtab.sh_size); fread(fd, names, shstrtab.sh_offset, shstrtab.sh_size); for (uint16_t i = 0; i < hdr.sh_num; i++) { @@ -250,7 +250,7 @@ int elf32_load_section(struct file_handle *fd, void *buffer, const char *name, s fread(fd, &shstrtab, hdr.shoff + hdr.shstrndx * sizeof(struct elf32_shdr), sizeof(struct elf32_shdr)); - char names[shstrtab.sh_size]; + char *names = ext_mem_alloc(shstrtab.sh_size); fread(fd, names, shstrtab.sh_offset, shstrtab.sh_size); for (uint16_t i = 0; i < hdr.sh_num; i++) {