Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!cs.utexas.edu!uunet!murtoa.cs.mu.oz.au!munnari.oz.au!otc!metro!extro!natmlab!ditsyda!evans From: evans@ditsyda.oz (Bruce Evans) Newsgroups: comp.os.minix Subject: Bug fix for sh memory allocation (repost) Message-ID: <2054@ditsyda.oz> Date: 6 Jul 89 13:04:14 GMT Organization: CSIRO DIT Sydney, Australia Lines: 40 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