]> granicus.if.org Git - nethack/commit
fix #H9269 - potential panic due to window slots
authorPatR <rankin@nethack.org>
Thu, 3 Oct 2019 22:45:43 +0000 (15:45 -0700)
committerPatR <rankin@nethack.org>
Thu, 3 Oct 2019 22:45:43 +0000 (15:45 -0700)
commitd9a1bbb2030035463f740a277acfc9faa29e1eae
tree4cd97ae37934408099bf2b93e4825ffcb081d0ff
parent455c3fbf620b497c3fd1622fa01d0fc55875f1e2
fix #H9269 - potential panic due to window slots

A couple of early returns could result in temporary windows getting
left around instead of being released for re-use, which in turn might
lead to a panic due to lack of available window slots.  The first
one is accompanied by an 'impossible' warning which no one has ever
reported and the second one could only happen if data file 'keyhelp'
was missing, so panic due to either of these is hypothetical as far
as released versions go.  Somebody making modifications could run
afoul of either of them though.

query_category() - switch from early return to 'goto' so that the
  temporary window used for a menu will always be destroyed;
whatdoes_help() - defer creating the display window until after the
  data file has been successfully opened so that early return won't
  need any window cleanup.
doc/fixes36.3
src/pager.c
src/pickup.c