[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lost] [Patch] bin_loader: Genug Pages reservieren



Der hier koennte wohl noch verbessert werden. Teilweise duerfte damit eine
Page zu viel reserviert werden (was die Sache genauso kaputtmachen
koennte, wenn ich so drueber nachdenke), aber jedenfalls nicht mehr zu
wenig. Fuer mich noetig, um init zu laden.
Index: trunk/src/lib/bin_loader/elf32.c
===================================================================
--- trunk.orig/src/lib/bin_loader/elf32.c
+++ trunk/src/lib/bin_loader/elf32.c
@@ -97,7 +97,7 @@ bool loader_elf32_load_image(pid_t proce
             // Speicher allokieren, daten kopieren und anschliessend den
             // Beriech zwischen filesz und memsz mit Nullen auffuellen
             size_t page_count = NUM_PAGES(PAGE_ALIGN_ROUND_UP(
-                program_header->p_memsz));
+                program_header->p_memsz) + 1);
             vaddr_t mem_image = loader_allocate_mem(page_count * PAGE_SIZE);
             memcpy((vaddr_t) ((uintptr_t) mem_image + program_header->p_offset
                 % PAGE_SIZE), (vaddr_t) ((uintptr_t) elf_header +