Package: slashem
Version: 0.0.7E7F3-2
Severity: important

When the player sacrifices a corpse at an altar and the Holy Spear of
Light appears as a god gift, the game says:
<quote>
begin_burn: can't get obj position
Program in disorder - perhaps you'd better #quit.
</quote>
The game also creates a file "paniclog" (see the attached file).

The gift is made in this way:
* dosacrifice() in pray.c calls
  mk_artifact((struct obj *)0, a_align(u.ux,u.uy))
* mk_artifact() in artifact.c allocates memory for an object by calling
  mksobj()
* mk_artifact() sets the value of the new object, making it into
  an artifact
* after the artifact is created, dosacrifice() places the artifact
  on the altar by calling dropy()
The bug is caused because:
* when mksobj() in mkobj.c initializes an object, it sets its location
  "nowhere" (otmp->where set to OBJ_FREE)
* when mk_artifact() makes an object into an artifact, it calls oname()
* oname() in do_name.c calls artifact_exists() if the object is really
  an artifact
* artifact_exists() in artifact.c calls begin_burn() if the artifact is
  a light source and if it is not Sunsword
* begin_burn() in timeout.c calls get_obj_location(), assuming that
  the object is somewhere in the game, but dropy() is not yet called

Severity is set to important because the bug makes slashem append
the error message to whatever file named "paniclog" in the current
directory without dropping the setgid privilege.  paniclog can be
a symlink.


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/bash

Versions of packages slashem depends on:
ii  libc6                     2.11.2-7       Embedded GNU C Library: Shared lib
ii  libncurses5               5.7+20100313-4 shared libraries for terminal hand
ii  slashem-common            0.0.7E7F3-2    Files common to all slashem-packag

slashem recommends no packages.

Versions of packages slashem suggests:
pn  slashem-x11 | slashem-sdl | s <none>     (no description available)

-- no debconf information

0.0.7E7F3 20110123: impossible begin_burn: can't get obj position

Reply via email to