Am Samstag, 30. August 2008 22.54:59 schrieb Kevin Wolf: > Am Samstag, 30. August 2008 20:51:21 schrieb Antoine Kaufmann: > > Index: trunk/src/modules/init/init.c > > =================================================================== > > --- trunk.orig/src/modules/init/init.c > > +++ trunk/src/modules/init/init.c > > @@ -522,7 +522,7 @@ size_t ainflate(void* src, size_t len, v > > stream.avail_in = len - i - 8; > > > > stream.avail_out = *((dword*) (src_buf + len - 4)); > > - stream.next_out = mem_allocate(stream.avail_out, 0); > > + stream.next_out = malloc(stream.avail_out); > > *dest_ptr = stream.next_out; > > > > > > @@ -556,6 +556,7 @@ size_t ainflate(void* src, size_t len, v > > > > pid_t start_program(char* path, char* args, pid_t parent_pid) > > { > > + pid_t pid; > > FILE* f = fopen(path, "r"); > > > > if(f == NULL) > > @@ -620,12 +621,14 @@ pid_t start_program(char* path, char* ar > > } > > else > > { > > - buffer = mem_allocate(pages * 4096, 0); > > + buffer = malloc(pages * 4096); > > An der Stelle hätte ich aber wirklich mem_allocate benutzt, wenn du eh > ganze Pages brauchst. Dann braucht mem_free aber auch eine Grösse und ich muss ainflate auch noch anpasen. ;-) > > fread(buffer, 1, size, f); > > } > > fclose(f); > > > > - return load_single_module((Elf32_Ehdr*) buffer, args, parent_pid); > > + pid = load_single_module((Elf32_Ehdr*) buffer, args, parent_pid); > > Kann load_single_module denn überhaupt mit nicht page-aligntem Buffer > umgehen? malloc dürfte sowas theoretisch machen. Jo das alloziert neue Pages um sie an die neuen Prozesse zu verschenken. ;-) > > + free(buffer); > > + return pid; > > }
Attachment:
signature.asc
Description: This is a digitally signed message part.