[comp.os.minix] Bug fix for sh memory allocation

evans@ditsyda.oz (Bruce Evans) (07/06/89)

Sh sometimes destroys its circular list of allocated memory and then gets
stuck in an infinite loop (usually with signals ignored). This typically
happens with "ls *.c" where the wild card expands to about 1000 bytes.

#! /bin/sh
# Contents:  sh1.c.cdif
# Wrapped by evans@ditsyda on Sat Jun 10 22:07:01 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'sh1.c.cdif' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'sh1.c.cdif'\"
else
echo shar: Extracting \"'sh1.c.cdif'\" \(378 characters\)
sed "s/^X//" >'sh1.c.cdif' <<'END_OF_FILE'
X*** /user/sys/commands/sh/sh1.c	Wed Jan 25 11:10:15 1989
X--- sh1.c	Sun May 28 23:09:05 1989
X***************
X*** 819,823 ****
X  			 * merge free cells
X  			 */
X! 			while ((q = p->next)->area > areanum)
X  				p->next = q->next;
X  			/*
X--- 819,823 ----
X  			 * merge free cells
X  			 */
X! 			while ((q = p->next)->area > areanum && q != areanxt)
X  				p->next = q->next;
X  			/*
END_OF_FILE
if test 378 -ne `wc -c <'sh1.c.cdif'`; then
    echo shar: \"'sh1.c.cdif'\" unpacked with wrong size!
fi
# end of 'sh1.c.cdif'
fi
echo shar: End of shell archive.
exit 0

Bruce Evans		evans@ditsyda.oz.au
-- 
Bruce Evans		evans@ditsyda.oz.au