OSDN Git Service

Bradley D. LaRonde writes:
authorEric Andersen <andersen@codepoet.org>
Thu, 13 May 2004 00:19:47 +0000 (00:19 -0000)
committerEric Andersen <andersen@codepoet.org>
Thu, 13 May 2004 00:19:47 +0000 (00:19 -0000)
Oops, this adds the page alignment offset to the mprotected size.

Regards,
Brad

ldso/ldso/dl-startup.c

index 9b6ef76..f97619a 100644 (file)
@@ -383,7 +383,8 @@ found_got:
                                                 * it to us rx.
                                                 */
                                                Elf32_Addr mpa = (ppnt->p_vaddr + app_tpnt->loadaddr) & ~(_dl_pagesize - 1);
-                                               if(_dl_mprotect(mpa, ppnt->p_memsz, PROT_READ | PROT_WRITE | PROT_EXEC)) {
+                                               Elf32_Word mps = ((ppnt->p_vaddr + app_tpnt->loadaddr) - mpa) + ppnt->p_memsz;
+                                               if(_dl_mprotect(mpa, mps, PROT_READ | PROT_WRITE | PROT_EXEC)) {
                                                        SEND_STDERR("Couldn't mprotect .dynamic segment to rwx.\n");
                                                        _dl_exit(0);
                                                }