pg_verifybackup: Improve some error handling around strtoul() calls

Three code paths checking the size, timeline ID and system identifier
stored in a manifest now check for an empty value.  Values are always
expected in these parts of a backup banifest.  A couple of tests are
added to validate this behavior

Additionally, precheck_tar_backup_file() checked that "endptr" is NULL.
Based on the C standard, strtoul() never sets an "endptr" to NULL when
given a value (that is the case here), returning a pointer to the
original value if there is nothing to convert.  The pre-tar validation
code is adjusted to do so.

Author: Tristan Partin <[email protected]>
Discussion: https://postgr.es/m/[email protected]

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/355814931141537e51418a276c74e91283da9631

Modified Files
--------------
src/bin/pg_verifybackup/pg_verifybackup.c     |  2 +-
src/bin/pg_verifybackup/t/005_bad_manifest.pl | 16 ++++++++++++++++
src/common/parse_manifest.c                   |  6 +++---
3 files changed, 20 insertions(+), 4 deletions(-)

Reply via email to