Avoid platform-specific null pointer dereference in psql.
authorTom Lane
Sun, 25 Aug 2019 19:04:04 +0000 (15:04 -0400)
committerTom Lane
Sun, 25 Aug 2019 19:04:04 +0000 (15:04 -0400)
commitc693c5c4904d9afdd97cbe414248583d57b59ce4
tree477e16f95befbb6e5a5adb579e7e1b88c6e2f2a2
parent157b233c44e40a66b187b5d1cb84e13ed07eaae0
Avoid platform-specific null pointer dereference in psql.

POSIX permits getopt() to advance optind beyond argc when the last
argv entry is an option that requires an argument and hasn't got one.
It seems that no major platforms actually do that, but musl does,
so that something like "psql -f" would crash with that libc.
Add a check that optind is in range before trying to look at the
possibly-bogus option.

Report and fix by Quentin Rameau.  Back-patch to all supported
branches.

Discussion: https://postgr.es/m/20190825100617[email protected]
src/bin/psql/startup.c