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: Crasher on corrupt string.
Date: Sun, 3 Mar 2002 18:37:02 -0600
From: Gnomi <Gnomi@UNItopia.bera.rus.Uni-Stuttgart.DE>
Type: Bug
State: Abandoned.
Driver: 3.2.9-dev.405

Hi,

Wir hatten heute einen Crash:

DEBUG: free_string(): 0x181c63cc '=8C=DE@=0C=FC[=8A=11=01' has 0 refs.
Free string: not found in string table! ("=8C=DE@=0C=FC[=8A=11=01")
2002.03.03 22:43:47 Free string: not found in string table!obj/player#78053=
0 i/player/player.c line 1125
dc764cd:  26        2 local                      (1: 28)	line 1125
dc764cf: 107          simul_efun                 (2: 29)
secure/simul_efun/simul_efun secure/simul_efun/simul_efun.c (util.inc) line=
 80
cf92097:  26        0 local                      (0: 29)	line 80
cf92099: 185          objectp                    (1: 30)
cf9209a:  35        8 &&                         (1: 30)
cf9209c:   7       49 cstring0                   (0: 29)
cf9209e:   7       50 cstring0                   (1: 30)
cf920a0:  26        0 local                      (2: 31)
cf920a2: 127          call_other                 (3: 32)
secure/master secure/master.c (/secure/master/check_level.inc) line 30
d539cbf:  78      257 clear_locals               (0: 33)	line 30
d539cc2:  26        0 local                      (0: 33)	line 31
d539cc4: 185          objectp                    (1: 34)
d539cc5:  84     5633 branch_when_non_zero       (1: 34)
d539cc8:  26        0 local                      (0: 33)	line 33
d539cca: 184          object_name                (1: 34)
d539ccb:   7        4 cstring0                   (1: 34)
d539ccd:  94        1 push_local_variable_lvalue (2: 35)
d539ccf:  25        3 sscanf                     (3: 36)
d539cd1:  14          const1                     (1: 34)
d539cd2:  48          =3D=3D                         (2: 35)
d539cd3:  36       11 ||                         (1: 34)
d539cd5:  26        0 local                      (0: 33)	line 34
d539cd7: 184          object_name                (1: 34)
d539cd8:   7        5 cstring0                   (1: 34)
d539cda:  94        1 push_local_variable_lvalue (2: 35)
d539cdc:  25        3 sscanf                     (3: 36)
d539cde:  14          const1                     (1: 34)
d539cdf:  48          =3D=3D                         (2: 35)
d539ce0:  36       11 ||                         (1: 34)
d539ce2:  26        0 local                      (0: 33)	line 35
d539ce4: 184          object_name                (1: 34)
d539ce5:   7        6 cstring0                   (1: 34)
d539ce7:  94        1 push_local_variable_lvalue (2: 35)
d539ce9:  25        3 sscanf                     (3: 36)
d539ceb:  14          const1                     (1: 34)
d539cec:  48          =3D=3D                         (2: 35)
d539ced:  21          return                     (1: 34)
secure/simul_efun/simul_efun secure/simul_efun/simul_efun.c (util.inc) line=
 80
cf920a4:  21          return                     (1: 30)	line 80
obj/player#780530 i/player/player.c line 1125
dc764d1:  83          branch_when_zero           (2: 29)	line 1125
dc764db:   7      245 cstring0                   (1: 28)
dc764dd:  26        2 local                      (2: 29)
dc764df: 215          sprintf                    (3: 30)
secure/master secure/master.c (/secure/master/compiler_control.inc) line 173
d53e60f:  78      257 clear_locals               (0: 32)	line 173
d53e612:  26        0 local                      (0: 32)	line 175
d53e614:   7       19 cstring0                   (1: 33)
d53e616: 127        2 call_other                 (2: 34)
d53e618:  94        1 push_local_variable_lvalue (1: 33)
d53e61a:  38          (void)=3D                    (2: 34)
d53e61b:  26        1 local                      (0: 32)	line 176
d53e61d: 216          stringp                    (1: 33)
d53e61e:  35          &&                         (1: 33)
d53e625:  83 352393731 branch_when_zero           (1: 33)
d53e62a:  26        0 local                      (0: 32)	line 178
d53e62c:   7      198 cstring0                   (1: 33)
d53e62e: 127          call_other                 (2: 34)
obj/zauberstab#780548 i/item/name.c line 178
a09da1b:   5        3 identifier                 (0: 34)
a09da1d:  21          return                     (1: 35)
secure/master secure/master.c (/secure/master/compiler_control.inc) line 178
d53e630:  94        1 push_local_variable_lvalue (1: 33)
d53e632:  38          (void)=3D                    (2: 34)
d53e633:  26        1 local                      (0: 32)	line 179
d53e635: 216          stringp                    (1: 33)
d53e636:  35        5 &&                         (1: 33)
d53e638:  26        1 local                      (0: 32)
d53e63a:   7      110 cstring0                   (1: 33)
d53e63c:  49          !=3D                         (2: 34)
d53e63d:  83        3 branch_when_zero           (1: 33)
d53e63f:  26        1 local                      (0: 32)	line 180
d53e641:  21          return                     (1: 33)
obj/player#780530 i/player/player.c line 1126
dc764e1:  26        3 local                      (2: 29)	line 1126
dc764e3:  87          call_function_by_address   (3: 30)
obj/player#780530 i/player/event.c line 1169
c93f5a7:  78      259 clear_locals               (0: 31)	line 1169
c93f5aa:  26        2 local                      (0: 31)	line 1170
c93f5ac: 217          strlen                     (1: 32)
c93f5ad:  84     5633 branch_when_non_zero       (1: 32)
c93f5b0:   5        9 identifier                 (0: 31)	line 1171
c93f5b2:  26        0 local                      (1: 32)
c93f5b4:  99          index                      (2: 33)
c93f5b5:  84          branch_when_non_zero       (1: 32)
c93f5c0: 226          this_object                (0: 31)	line 1173
c93f5c1: 162          interactive                (1: 32)
c93f5c2:  84          branch_when_non_zero       (1: 32)
c93f60e:  26        0 local                      (0: 31)	line 1191
c93f610:   7      179 cstring0                   (1: 32)
c93f612:  48          =3D=3D                         (2: 33)
c93f613:  83        3 branch_when_zero           (1: 32)
c93f615: 233          utime                      (0: 31)
c93f616:  82    -6911 branch                     (1: 32)
c93f619:  26        1 local                      (1: 32)
c93f61b:  26        2 local                      (2: 33)
c93f61d:  13          const0                     (3: 34)
c93f61e: 108        4 aggregate                  (4: 35)
c93f621: 108        1 aggregate                  (1: 32)
c93f624:  26        0 local                      (1: 32)
c93f626:  89        9 push_identifier_lvalue     (2: 33)
c93f628:  97          index_lvalue               (3: 34)
c93f629:  64          (void)+=3D                   (2: 33)
c93f62a:  26        0 local                      (0: 31)	line 1193
c93f62c:   7      179 cstring0                   (1: 32)
c93f62e:  49          !=3D                         (2: 33)
c93f62f:  35          &&                         (1: 32)
c93f63f:  83          branch_when_zero           (1: 32)
c93f651:  26        0 local                      (0: 31)	line 1195
c93f653:   7      179 cstring0                   (1: 32)
c93f655:  48          =3D=3D                         (2: 33)
c93f656:  35       14 &&                         (1: 32)
c93f658:   5        9 identifier                 (0: 31)
c93f65a:  26        0 local                      (1: 32)
c93f65c:  99          index                      (2: 33)
c93f65d: 213          sizeof                     (1: 32)
c93f65e:  16      200 clit                       (1: 32)
c93f660:  40          -                          (2: 33)
c93f661:  94        3 push_local_variable_lvalue (1: 32)
c93f663:  37          =3D                          (2: 33)
c93f664:  13          const0                     (1: 32)
c93f665:  44          >                          (2: 33)
c93f666:  83          branch_when_zero           (1: 32)
c93f676:  22          return0                    (0: 31)	line 1197
obj/player#780530 i/player/player.c line 1126
dc764e7:  76          pop_value                  (1: 28)	line 1126
dc764e8:  26        1 local                      (0: 27)	line 1127
dc764ea:  16       22 clit                       (1: 28)
dc764ec:  48          =3D=3D                         (2: 29)
dc764ed:  35          &&                         (1: 28)
dc764f8:  83          branch_when_zero           (1: 28)
dc76510:  26        1 local                      (0: 27)	line 1130
dc76512:  16       14 clit                       (1: 28)
dc76514:  48          =3D=3D                         (2: 29)
dc76515:  83          branch_when_zero           (1: 28)
dc7652d:  22          return0                    (0: 27)	line 1134
secure/simul_efun/simul_efun secure/simul_efun/simul_efun.c (comm.inc) line=
 30
cf930d6:  76          pop_value                  (1: 22)	line 30
cf930d7:  22          return0                    (0: 21)	line 31
obj/zauberstab#780548 i/tools/pipe.c line 284
c1f03d1:  76          pop_value                  (1: 20)	line 284
c1f03d2:  23          break                      (0: 19)
c1f03ef:   7        0 cstring0                   (0: 19)	line 285
c1f03f1:  89        4 push_identifier_lvalue     (1: 20)
c1f03f3:  38          (void)=3D                    (2: 21)
c1f03f4:  14          const1                     (0: 19)	line 286
c1f03f5:  21          return                     (1: 20)
obj/zauberstab#780548 i/zauberstab/zauberstab.c (/i/zauberstab/zmarker.inc)=
 line 958
dd42642:  84     5633 branch_when_non_zero       (1: 18)	line 958
dd42645:  26       15 local                      (0: 17)	line 960
dd42647:   8      233 cstring1                   (1: 18)
dd42649:  99          index                      (2: 19)
dd4264a:  36        5 ||                         (1: 18)
dd4264c:  26       15 local                      (0: 17)
dd4264e:  10       35 cstring3                   (1: 18)
dd42650:  99          index                      (2: 19)
dd42651:  83          branch_when_zero           (1: 18)
dd42663:  14          const1                     (0: 17)	line 963
dd42664:  21          return                     (1: 18)
p/Tool/obj/wicht#780544 p/Tool/obj/wicht.c line 791
cbfddcf:  78      512 clear_locals               (0:  1)	line 791
cbfddd2:   5       46 identifier                 (0:  1)	line 793
cbfddd4: 135          closurep                   (1:  2)
cbfddd5:  57          !                          (1:  2)
cbfddd6:  36        4 ||                         (1:  2)
cbfddd8:   5       46 identifier                 (0:  1)
cbfddda: 438      182 to_object                  (1:  2)
cbfdddc:  83        7 branch_when_zero           (1:  2)
cbfddde:   5       46 identifier                 (0:  1)	line 794
cbfdde0: 154          funcall                    (1:  2)
obj/player#780530 i/player/tippse.c line 719
ce73717:   5       14 identifier                 (0: 11)	line 719
ce73719: 217          strlen                     (1: 12)
ce7371a:  35        7 &&                         (1: 12)
ce7371c:   5       14 identifier                 (0: 11)
ce7371e:  14          const1                     (1: 12)
ce7371f: 100          rindex                     (2: 13)
ce73720:  16       10 clit                       (1: 12)
ce73722:  49          !=3D                         (2: 13)
ce73723:  83        7 branch_when_zero           (1: 12)
ce73725: 226          this_object                (0: 11)	line 720
ce73726:   7       60 cstring0                   (1: 12)
ce73728:  14          const1                     (2: 13)
ce73729: 127          call_other                 (3: 14)
obj/player#780530 i/player/player.c line 1107
dc7646b:  26        0 local                      (0: 14)	line 1107
dc7646d:  93      265 push_identifier16_lvalue   (1: 15)
dc76470:  38          (void)=3D                    (2: 16)
dc76471:  22          return0                    (0: 14)	line 1108
obj/player#780530 i/player/tippse.c line 720
ce7372b:  76          pop_value                  (1: 12)	line 720
ce7372c:   5       14 identifier                 (0: 11)	line 721
ce7372e:  21          return                     (1: 12)
p/Tool/obj/wicht#780544 p/Tool/obj/wicht.c line 794
cbfdde2:  94        0 push_local_variable_lvalue (1:  2)	line 794
cbfdde4:  38          (void)=3D                    (2:  3)
cbfdde5:   5       41 identifier                 (0:  1)	line 795
cbfdde7:  57          !                          (1:  2)
cbfdde8:  36        3 ||                         (1:  2)
cbfddea:   5       40 identifier                 (0:  1)
cbfddec:  57          !                          (1:  2)
cbfdded:  83          branch_when_zero           (1:  2)
cbfddf6:   5       44 identifier                 (0:  1)	line 796
cbfddf8:  13          const0                     (1:  2)
cbfddf9:  48          =3D=3D                         (2:  3)
cbfddfa:  83       47 branch_when_zero           (1:  2)
cbfddfc:   5       40 identifier                 (0:  1)	line 798
cbfddfe:   7      117 cstring0                   (1:  2)
cbfde00: 127          call_other                 (2:  3)
obj/player#780530 i/item/name.c line 112
b101853:   5        0 identifier                 (0:  3)	line 112
b101855:  21          return                     (1:  4)
p/Tool/obj/wicht#780544 p/Tool/obj/wicht.c line 798
cbfde02:  94        1 push_local_variable_lvalue (1:  2)	line 798
cbfde04:  37          =3D                          (2:  3)
cbfde05:  83          branch_when_zero           (1:  2)
cbfde26:   7      134 cstring0                   (0:  1)	line 803
cbfde28:  21          return                     (1:  2)
cf92f11:  94   2  38  26   3 211  26   2
No program to trace.
2002.03.03 22:43:47 LDMud aborting on fatal error.
[xerq] read: Connection refused
2002.03.03 22:44:19 [xerq] Demon exiting.

#0  0x80e983e in fatal (
    fmt=3D0x811ba40 "Free string: not found in string table!")
at simulate.c:622
622	        *((char*)0) =3D 0/a;
(gdb) bt
#0  0x80e983e in fatal (
    fmt=3D0x811ba40 "Free string: not found in string table!")
at simulate.c:622
#1  0x80f234f in checked (
    s=3D0x811ba40 "Free string: not found in string table!",=20
    str=3D0x181c63cc "\214=DE@\f=FC[\212\021\001") at stralloc.c:395
#2  0x80f25b1 in free_string (str=3D0x181c63cc "\214=DE@\f=FC[\212\021\001")
    at stralloc.c:738
#3  0x80c44a6 in do_free_sub_strings (num_strings=3D17, strings=3D0xd626744=
,=20
    num_variables=3D67, variable_names=3D0xd626788) at object.c:440
#4  0x80c46a8 in free_prog (progp=3D0xd626044, free_all=3D1) at object.c:534
#5  0x80c46e1 in free_prog (progp=3D0x988478c, free_all=3D1) at object.c:540
#6  0x80c41ed in _free_object (ob=3D0x182ce918) at object.c:257
#7  0x80ec241 in remove_destructed_objects () at simulate.c:2502
#8  0x805517c in cleanup_stuff () at backend.c:343
#9  0x8052da0 in backend () at backend.c:412
#10 0x80ba158 in main (argc=3D56, argv=3D0xbffffab4) at main.c:428

Dieses zerstoerte Programm (/w/rezinclov/tauchen/i/unter_dem_meer.c)
hatte (u.a.) folgenden Code:

void init(){
        ::init();
        add_action("_tauche","hoch");
        add_action("_tauche","schwimme");
        add_action("_tauche","schwimmen");
}

Die Strings (progp->strings) sind aber:
  0x1154be38 "_tauche"
  0x1040a718 "hoch",=20
  0x181c63cc "\214=DE@\f=FC[\212\021\001"
  0x1085c7b0 "schwimmen",=20
  0x108c5260 "delete_v_item"

Beim 3. String gab es den Fehler und man sollte annehmen, dass dieser
String eigentlich "schwimme" heissen sollte.
Ein Blick in die String-Tabelle zeigt:

(gdb) print base_table[34574]
$11 =3D 0x162c0800 "schwimme"
(gdb) print *((int*)(base_table[34574]-4))
$12 =3D 2

Dieser String existiert also noch mit 2 Referenzen.
Das heisst wohl, dieser Eintrag in die String-Liste des Programmes wurde
ueberschrieben, und damit ist das wohl nicht der im beim dev407 gefixte
Bug bei add_actions.

Gruss
Gnomi