فهرست منبع

Bradley D. LaRonde writes:

Oops, this adds the page alignment offset to the mprotected size.

Regards,
Brad
Eric Andersen 21 سال پیش
والد
کامیت
2059409892
1فایلهای تغییر یافته به همراه2 افزوده شده و 1 حذف شده
  1. 2 1
      ldso/ldso/dl-startup.c

+ 2 - 1
ldso/ldso/dl-startup.c

@@ -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);
 						}