From 726d181ab4faddce7260568f067102fa448ee6ab Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 19 Sep 1998 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1998-09-19 --- port/segment.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/port/segment.c b/port/segment.c index 128bb9f595b1ba5d199abbde9dadeb5c2a91674f..fd3d1b4ed53bb14d47d7309b678cf4741db7a992 100644 --- a/port/segment.c +++ b/port/segment.c @@ -62,6 +62,9 @@ newseg(int type, ulong base, ulong size) mapsize = ROUND(size, PTEPERTAB)/PTEPERTAB; if(mapsize > nelem(s->ssegmap)){ + mapsize *= 2; + if(mapsize > (SEGMAPSIZE*PTEPERTAB)) + mapsize = (SEGMAPSIZE*PTEPERTAB); s->map = smalloc(mapsize*sizeof(Pte*)); s->mapsize = mapsize; } @@ -436,7 +439,7 @@ ibrk(ulong addr, int seg) mapsize = ROUND(newsize, PTEPERTAB)/PTEPERTAB; if(mapsize > s->mapsize){ map = smalloc(mapsize*sizeof(Pte*)); - memmove(map, s->map, s->mapsize); + memmove(map, s->map, s->mapsize*sizeof(Pte*)); if(s->map != s->ssegmap) free(s->map); s->map = map;