[CODE] libc_free

From: Digital (digital@TOGETHER.NET)
Date: 06/13/98


I have a problem with red hat linux 4.2 and libc_free it gives me the
folling from gdb when I edit a new mob

Wed Jun 10 14:59:24 :: OLC: Juno edits mob 21001

Program received signal SIGSEGV, Segmentation fault.
0x4004249d in __libc_free ()
(gdb) back
#0  0x4004249d in __libc_free ()
#1  0xfb4 in ?? ()
#2  0x1 in ?? ()
#3  0x104ec in ?? ()
Cannot access memory at address 0x81e58955.

The mud will crach and I have no idea why. Here is where I beleive the
problem code is.

void medit_free_mobile(struct char_data * mob)
{
  int i;

  if (GET_MOB_RNUM(mob) == -1)  /* Non prototyped mobile */
  {
    if (mob->player.name)
      free(mob->player.name);
    if (mob->player.title)
      free(mob->player.title);
    if (mob->player.short_descr)
      free(mob->player.short_descr);
    if (mob->player.long_descr)
   free(mob->player.long_descr);
    if (mob->player.description)
      free(mob->player.description);
  }
  else if ((i = GET_MOB_RNUM(mob)) > -1) /* Prototyped mobile */
  {
    if (mob->player.name && mob->player.name !=
mob_proto[i].player.name)
      free(mob->player.name);
    if (mob->player.title && mob->player.title !=
mob_proto[i].player.title)
      free(mob->player.title);
    if (mob->player.short_descr && mob->player.short_descr !=
mob_proto[i].player.short_descr)
      free(mob->player.short_descr);
    if (mob->player.long_descr && mob->player.long_descr !=
mob_proto[i].player.long_descr)
      free(mob->player.long_descr);
    if (mob->player.description && mob->player.description !=
mob_proto[i].player.description)
      free(mob->player.description);
  }

  while (mob->affected)


     +------------------------------------------------------------+
     | 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