]> git.pond.sub.org Git - empserver/commit
Fix treatment of EOF from player hvy-metal-2.8
authorMarkus Armbruster <armbru@pond.sub.org>
Tue, 15 Jul 2008 02:37:02 +0000 (22:37 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Tue, 15 Jul 2008 10:37:05 +0000 (06:37 -0400)
commitb9b0710128f4460996c98f17066da4a895b6e124
tree4fb131d97630cf3bf83f365686c59e9b8597284f
parent80b57b2f955f30bbe739500240139c35fb167f44
Fix treatment of EOF from player

Commit 79407e68 (v4.3.11) changed recvclient() to keep failing after
receiving EOF from player.  This was bad, because some places getting
input check player->aborted instead of recvclient() failure, and
player->aborted wasn't set on EOF.  Bugs caused by this:

* comm_bomb(), ship_bomb(), plane_bomb(), land_bomb() went into an
  infinite loop that eventually ate all memory.

* deli(), desi(), dist(), fly(), morale(), zdon(), att_prompt(),
  ask_move_in() interpreted EOF as empty input instead of no more
  input.

* cmd_sail_ship() dereferenced a null pointer.

Fix by setting player->aborted on EOF, too.
(cherry picked from commit b3a7a8ee11595aac2bd27f76b3adf9e4c48bb0eb)
include/player.h
src/lib/player/player.c
src/lib/player/recvclient.c