Date: Thu, 4 Jan 1996 14:41:36 -0600 (CST) From: Lars Fredriksen <fredriks@mcs.com> To: current@freebsd.org Subject: malloc bug in current? Message-ID: <199601042041.OAA29400@fredriks.pr.mcs.net>
next in thread | raw e-mail | index | archive | help
Hi,
Pax kept blowing up on me in free() so I started looking at tit a bit.
It looks like there is a slight bug in malloc.c.
-------------------------------------------------------------------------------
*** malloc.c.orig Thu Jan 4 08:45:03 1996
--- malloc.c Thu Jan 4 08:45:06 1996
***************
*** 957,963 ****
/* Count how many pages and mark them free at the same time */
page_dir[index] = MALLOC_FREE;
! for (i = 1; page_dir[index+i] == MALLOC_FOLLOW; i++)
page_dir[index + i] = MALLOC_FREE;
l = i << malloc_pageshift;
--- 957,963 ----
/* Count how many pages and mark them free at the same time */
page_dir[index] = MALLOC_FREE;
! for (i = 1; (index < last_index) && (page_dir[index+i] == MALLOC_FOLLOW); i++)
page_dir[index + i] = MALLOC_FREE;
l = i << malloc_pageshift;
-------------------------------------------------------------------------------
The problem was( I think) that index+i went past last_index which caused a
SIGSEGV. With the above fix my backups now works again. :-)
Lars
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199601042041.OAA29400>
