aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/unexec.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/unexec.c b/src/unexec.c
index 4b853e5b7ee..3be336a9a77 100644
--- a/src/unexec.c
+++ b/src/unexec.c
@@ -1014,14 +1014,15 @@ write_segment (new, ptr, end)
1014 register int i, nwrite, ret; 1014 register int i, nwrite, ret;
1015 char buf[80]; 1015 char buf[80];
1016 extern int errno; 1016 extern int errno;
1017 char zeros[128]; 1017 int pagesize = getpagesize ();
1018 char *zeros = (char *) alloca (pagesize);
1018 1019
1019 bzero (zeros, sizeof zeros); 1020 bzero (zeros, pagesize);
1020 1021
1021 for (i = 0; ptr < end;) 1022 for (i = 0; ptr < end;)
1022 { 1023 {
1023 /* distance to next multiple of 128. */ 1024 /* distance to next multiple of pagesize. */
1024 nwrite = (((int) ptr + 128) & -128) - (int) ptr; 1025 nwrite = (((int) ptr + pagesize) & -pagesize) - (int) ptr;
1025 /* But not beyond specified end. */ 1026 /* But not beyond specified end. */
1026 if (nwrite > end - ptr) nwrite = end - ptr; 1027 if (nwrite > end - ptr) nwrite = end - ptr;
1027 ret = write (new, ptr, nwrite); 1028 ret = write (new, ptr, nwrite);