Revision: 374 Author: nieklinnenbank Date: Fri Oct 15 13:43:53 2010Log: Fixed nullifying ELF memory segments to use + file_size instead of + memory_size.
http://code.google.com/p/freenos/source/detail?r=374 Modified: /branches/scratch/lib/libexec/elf.c ======================================= --- /branches/scratch/lib/libexec/elf.c Sun Oct 10 16:06:55 2010 +++ /branches/scratch/lib/libexec/elf.c Fri Oct 15 13:43:53 2010 @@ -98,7 +98,7 @@ } /* Read segment contents from file. */ if (fseek(fp, segments[i].offset, SEEK_SET) == -1 || - fread(regions[i].data, segments[i].file_size, 1, fp) < 0) + fread(regions[*num_regions].data, segments[i].file_size, 1, fp) < 0) { libexec_set_error("failed to fread() elf_segment_t content: %s", strerror(errno)); @@ -107,7 +107,7 @@ /* Nulify remaining space. */ if (segments[i].memory_size > segments[i].file_size) { - memset(regions[i].data + segments[i].memory_size, 0, + memset(regions[*num_regions].data + segments[i].file_size, 0, segments[i].memory_size - segments[i].file_size); } /* Increment counter. */