Wolfpack Empire - mirror of https://git.pond.sub.org/empserver
http://wolfpackempire.com/
The previous commit's message claims the race can lead to duplicated output, use after free, then double-free. That's correct only up to the use after free. There is no double-free. Heap corruption (double-free?) has been observed in Changeling, though. Player logged in (still in sanctuary), map #, crashed within removecc()'s free(io->data). Partial backtrace: raise () from /lib64/libc.so.6 abort () from /lib64/libc.so.6 __libc_message () from /lib64/libc.so.6 malloc_printerr () from /lib64/libc.so.6 removecc (ioq=0x251fd10, cc=468) at ../src/lib/gen/ioqueue.c:350 ioq_dequeue (ioq=0x251fd10, cc=468) at ../src/lib/gen/ioqueue.c:135 io_output (iop=0x251fc90, wait=1) at ../src/lib/empthread/io.c:231 recvclient (cmd=0x258d8e0 "", size=1024) at ../src/lib/player/recvclient.c:82 getcommand (combufp=0x2557068 "map #1") at ../src/lib/player/empdis.c:84 I haven't been able to reproduce. To hopefully catch ioqueue going south earlier, make ioq_dequeue() oops when it can't dequeue as many bytes as requested. |
||
---|---|---|
doc | ||
include | ||
info | ||
m4 | ||
man | ||
scripts | ||
src | ||
.gitignore | ||
bootstrap | ||
compile | ||
config.guess | ||
config.sub | ||
configure.ac | ||
COPYING | ||
CREDITS | ||
depcomp | ||
GNUmakefile.in | ||
INSTALL | ||
install-sh | ||
Make.mk | ||
README |
Welcome to Empire 4, code-named Wolfpack. Empire is a multi-player, client/server Internet based war game. Copyright (C) 1986-2010, Dave Pare, Jeff Bailey, Thomas Ruschak, Ken Stevens, Steve McClure This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License (in file `COPYING'), or (at your option) any later version. See file `CREDITS' for a list of contributors. Directory `doc' has additional information. File `doc/README' describes the files there and what they talk about. To build the server and set up a game, follow the steps below. (1) Unpacking the source tree If you downloaded a tarball, unpack it. If you cloned a git repository, run bootstrap. This requires recent versions of Autoconf and Automake to be installed. (2) Building a server Prerequisites: IEEE Std 1003.1-2001 (POSIX.1-2001), GNU make, a curses library, Perl, and either nroff or GNU troff (`groff'). See file `INSTALL' for detailed compilation and installation instructions. Quick guide for the impatient: run configure; make; make install. The last step is optional; everything runs fine right from the build tree. If make fails without doing anything, you're probably not using GNU make. Some systems have it installed as `gmake'. Solaris supports POSIX.1-2001, but you need to set up your environment for that. Try passing SHELL=/usr/xpg4/bin/sh PATH=/usr/xpg6/bin:/usr/xpg4/bin:$PATH to make. See standards(5) for details. (3) Creating a game * Create a configuration for your game. make install installs one in $prefix/etc/empire/econfig ($prefix is /usr/local unless you chose something else with configure). You can use pconfig to create another one. * Edit your configuration file. See doc/econfig for more information. Unless you put your configuration file in the default location (where make install installs it), you have to use -e with all programs to make them use your configuration. * Run files to set up your data directory. * Run fairland to create a world. For a sample world, try `fairland 10 30'. This creates file ./newcap_script, which will be used below. You can edit it to change country names and passwords. Check out fairland's manual page for more information. * Start the server. For development, you want to run it with -d in a debugger, see doc/debugging. Do not use -d for a real game! * Log in as deity POGO with password peter. This guide assumes you use the included client `empire', but other clients should work as well. For help, try `info'. To change the deity password, use `change re <password>'. * Create countries with `exec newcap_script'. Your game is now up! Naturally, there's more to running a real game than that, but that's beyond the scope of this file. Please report bugs to <wolfpack@wolfpackempire.com> or via SourceForge http://sourceforge.net/projects/empserver (registration required). For more information or help, try rec.games.empire on Usenet, or send e-mail to <wolfpack@wolfpackempire.com> and we'll try to answer if we can. Also check out our web site at "http://www.wolfpackempire.com". Have fun! Wolfpack!