ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
Short: Array reference count bug
From: Daniel von Dincklage <vondincklage@usa.net>
Date: Mon, 22 Jun 1998 03:42:01 +0200
Type: Patch
State: Applied.

Could this cause b-990203-5?

Hi !
Heres another small patch for the 3.2.1@141-driver. It fixes
a coredump that occurs while accessing an array that previously
hit the upper size-limit for arrays.
Thanks to Foobar@Regenbogen for telling me about the bug.

interpret.c :
***************
*** 12066,12072 ****
      p_size = VEC_SIZE(p);
      q_size = VEC_SIZE(q);
      s = p->item;
!     if (!--p->ref) {
  #ifdef MALLOC_smalloc
        /* we must not free any old array before we did the assignment,
         * thus vanilla realloc is not acepptable.
--- 11948,11954 ----
      p_size = VEC_SIZE(p);
      q_size = VEC_SIZE(q);
      s = p->item;
!     if (!(p->ref - 1)) {
  #ifdef MALLOC_smalloc
        /* we must not free any old array before we did the assignment,
         * thus vanilla realloc is not acepptable.
***************
*** 12094,12099 ****
--- 11976,11982 ----
  #endif
        {
            r = allocate_uninit_array(p_size + q_size);
+             p->ref--;
            d = r->item;
            for (cnt = p_size; --cnt >= 0; ) {
                *d++ = *s++;
***************
*** 12101,12106 ****
--- 11984,11990 ----
        }
      } else {
        r = allocate_uninit_array(p_size + q_size);
+         p->ref--;
        d = r->item;
        for (cnt = p_size; --cnt >= 0; ) {
            assign_checked_svalue_no_free (d++, s++, inter_sp,
inter_pc);

- Daniel von Dincklage (Sunblade@SiliconDream|Gabilon)
--
 * Daniel von Dincklage (vonDincklage@ozet.de) *
Windows95 (noun): 32 bit extensions and a graphical shell for a 16 bit
patch to an 8 bit operating system originally coded for a 4 bit micro
processor, written by a 2 bit company that can't stand 1 bit of
competition.