Board 2.2 crash

From: Chris Powell (darkness@CHESHIRE.GATOR.NET)
Date: 04/10/98


I have patched in the big.patch and dgolcplus patch.  After handpatching
in the board-2.2.patch, I get a strange crash, not so strange actually.
If I take a already made board from stock circle and edit it all is fine.
If I do oedit 1288 and set type to board, and goto valus and enter them in
the minlev to read/write/remove works fine after that  I crash on
create_new_board. Yes I understand that obj is null   that is caused by
trying to create an object with vnum of -1.  What is called is
Board_save_board(GET_OBJ_VNUM(OLC_OBJ(d)));

The beginning of Board_save_board is defined as


int Board_save_board(int board_vnum)
{
  extern struct board_info_type *board_info;
  struct board_info_type *thisboard=board_info;
  struct board_msg_info *message;
  struct board_memory_type *memboard;
  struct obj_data *obj;
  FILE *fl;
  int i= 1, counter = 0;

  while(thisboard) {
    if (BOARD_VNUM(thisboard) == board_vnum)
      break;
    thisboard=BOARD_NEXT(thisboard);
  }

  if(!thisboard) {
    thisboard=create_new_board(board_vnum);
  }

after it tries to create the obj with vnum -1 in the etc/boards directory
it creates the file -1, neither linux nor circlemud likes to try an deal
with that either

I get SYSERR: Trying to create obj with a negative vnum.
Here's the output.

create_new_board (board_vnum=-1) at boards.c:72
72                       READ_LVL(temp_board)=GET_OBJ_VAL(obj, 0);

(gdb) info locals
board_vnum = -1
bmsg = (struct board_msg_info *) 0x0
t_messages = 0
error = 0
t = {137016904, 137029616, -1073745216, 49}
mnum = 0
poster = 0
timestamp = 0
sflag = -1
buf = "etc/boards/-1\000\000\000\031d\031\031\031\031\031\000d\000d\000\001\001R\000R\000d", '\000' <repeats 11 times>, "j", '\000' <repeats 125 times>, "9\003@\230\t\n@\000\000\000\004\f\f\f\b\by\a@|\f\b\f\f\000\000\000\000\230\t\n0|\
t\004@|\013\b\220|\f\b\f\b|\000\000\000\000\230\t\n@H*\b*\b\001\000\f\b\f\b\f\b\f\b@\f\b\f\f\f\b\f\f"...
fl = (_IO_FILE *) 0x82aeca0
temp_board = (struct board_info_type *) 0x82aecf8
old_board = (struct board_info_type *) 0x82aecf8
obj = (struct obj_data *) 0x0
memboard = (struct board_memory_type *) 0xbffff064

(gdb) bt
#0  create_new_board (board_vnum=-1) at boards.c:72
#1  0x80652b2 in Board_save_board (board_vnum=-1) at boards.c:564
#2  0x808bad7 in oedit_disp_val4_menu (d=0x82ab648) at oedit.c:745
#3  0x808c870 in oedit_parse (d=0x82ab648, arg=0xbffffa64 "1") at oedit.c:1184
#4  0x8075c9b in nanny (d=0x82ab648, arg=0xbffffa64 "1") at interpreter.c:1268
#5  0x804a092 in game_loop (mother_desc=5) at comm.c:705
#6  0x80497c0 in init_game (port=4000) at comm.c:326
#7  0x8049739 in main (argc=1, argv=0xbffffdc8) at comm.c:288
#8  0x804947b in _start ()

(gdb) list
67                     else {
68
69                       obj = read_object(real_object(board_vnum), REAL);
70
71                       CREATE(temp_board, struct board_info_type, 1);
72                       READ_LVL(temp_board)=GET_OBJ_VAL(obj, 0);
73                       WRITE_LVL(temp_board)=GET_OBJ_VAL(obj, 1);
74                       REMOVE_LVL(temp_board)=GET_OBJ_VAL(obj, 2);
75                       BOARD_VNUM(temp_board)=board_vnum;
76                       BOARD_MNUM(temp_board)=0;



Chris Powell           * I don't have bugs, I have   * I don't crash, I
http://patch.gator.net * randomly developed features * have random reboots


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST