Fixed possible server crash + minor refactoring.

git-svn-id: svn+ssh://svn.code.sf.net/p/firebird/code/firebird/trunk@58798 65644016-39b1-43b1-bf79-96bc8fe82c15