On Tue, 4 Jan 2005 18:59:19 +0100, Andreas Kirschbaum wrote: > > Index: crossfire/server/main.c > [...] > >! if (!(QUERY_FLAG(pl->ob,FLAG_WIZ) && pl->ob->contr->hidden) && > >! (pl!=NULL && draw_exit)) new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL, buf); > This code seems rather "wrong" to me: all statements within the function > leave() (which is the enclosing function of this code fragment) check > "pl != NULL" before accessing pl. Therefore this statement will crash if > a NULL value would be passed. (On the other hand, I did not find any > caller that could possibly pass such a NULL value...) There probably was or still is a reson for pl != NULL checks, maybe the code should be something like: if (pl!=NULL && draw_exit) { if !(QUERY_FLAG(pl->ob,FLAG_WIZ) && pl->ob->contr->hidden) new_draw_info(NDI_UNIQUE | NDI_ALL | NDI_DK_ORANGE, 5, NULL, buf); } -------------- next part -------------- A non-text attachment was scrubbed... Name: main.c.diff.gz Type: application/x-perl Size: 403 bytes Desc: not available Url : http://shadowknight.real-time.com/pipermail/crossfire/attachments/20050104/b4096fa0/main.c.diff.bin -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel