In md_shellescape(), signal handlers for SIGINT and SIGQUIT were saved
and restored, but exchanged in the process. This was fixed in the
other games by commit 600873555ec0.
Deleting md_shellescape() might have been a better fix. It is
apparently unused.
The function wrapped the standard putchar(), doing nothing beside
discarding the return value. That could cause problems with tputs(),
which expects an int to be returned.
It is possible for getpwuid() to return NULL. Such a failure will no
longer cause a segfault. However, the call to getpwuid() may normally
not be reachable.