[CF-Devel] Problems running the latest CVS

Jan Tobias Muehlberg muehlber at fh-brandenburg.de
Mon Sep 23 10:58:11 CDT 2002


Hi,

after spending four hours in eating two bags of Chinese 'Soft
Melon Candy' and compiling the latest CVS of crossfire on SunOS 
5.5.1 I am not very satisfied with what I did. It was quite hard to get
this Python stuff compiled but now the server does not start properly,
which shouldn't have anything to do with Python.

Startup fails with the following messages:

---------------------------------
[...]
Questions and bugs should be mailed to above address.
Reading artifacts from
/home9/user/muehlber/crossfire/server/share/crossfire/artifacts...Object
NULL seems to have too low item power? 5 > 1
Object NULL seems to have too low item power? 9 > 3

SIGSEGV received.
Abort
---------------------------------

gdb says:

---------------------------------
Program received signal SIGSEGV, Segmentation fault.
0xef5a93bc in strlen ()
(gdb) where
#0  0xef5a93bc in strlen ()
#1  0xef5e9000 in _doprnt ()
#2  0xef5f20f8 in vsprintf ()
#3  0x7e8c4 in LOG (logLevel=llevDebug,
    format=0xbb0a0 "calc_item_power got %d enchantments for %s\n")
    at logger.c:56
#4  0x6e834 in calc_item_power (op=0x438d68, flag=0) at
    item.c:209
#5  0x75cd8 in check_loaded_object (op=0x438d68) at loader.l:146
#6  0x766a0 in lex_load (op=0x438d68, map_flags=0) at
    loader.l:278
#7  0x7d208 in load_object (fp=0xe3b40, op=0x438d68,
    bufstate=-268438664,
    map_flags=0) at loader.l:1044
#8  0x90714 in init_artifacts () at treasure.c:1162
#9  0x3d194 in init_beforeplay () at init.c:467
#10 0x3cf40 in init (argc=1, argv=0xeffff93c) at init.c:400
#11 0x41900 in main (argc=1, argv=0xeffff93c) at main.c:1149
---------------------------------

Any ideas?

Beside this: When I ran configure I was somewhat happy to see that you
are checking for snprintf() now. But you are not using the result of the
check, at least in server/spell_effect.c the function was still used. 
I fixed it by inserting:

---------------------------------
#include <stdarg.h>

int __vsnprintf(char *str, int size, const char *format, va_list ap);

int snprintf(char *dest, int max, const char *format, ...)
{
  va_list var;
  int ret;

  va_start(var, format);
  ret = __vsnprintf(dest, max, format, var);
  va_end(var);

  return ret;
}
---------------------------------

Perhaps this schould be default for SunOS without having snprintf().


Thanks in advance,
                   J. Tobias


-- 
PGP/GnuPG public key: 
     
     http://zeus.fh-brandenburg.de/~muehlber
     
     
    


More information about the crossfire mailing list