diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2012-03-14 22:41:50 +0200 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2012-03-14 22:41:50 +0200 |
commit | e684ab5e1ec900bb7b73fb6f8a655e0ec54b3720 (patch) | |
tree | 15ecb39493d63e6128c78a50949d8a6f5532d79a /src/backend/access/transam/xlog.c | |
parent | acfaa596ccd90e161bcc09bb00e755e65d9c068c (diff) | |
download | postgresql-e684ab5e1ec900bb7b73fb6f8a655e0ec54b3720.tar.gz postgresql-e684ab5e1ec900bb7b73fb6f8a655e0ec54b3720.zip |
Add additional safety check against invalid backup label file
It was already checking for invalid data after "BACKUP FROM", but
would possibly crash if "BACKUP FROM" was missing altogether.
found by Coverity
Diffstat (limited to 'src/backend/access/transam/xlog.c')
-rw-r--r-- | src/backend/access/transam/xlog.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 18fc23286aa..ff7f521a1b1 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -9481,7 +9481,7 @@ do_pg_stop_backup(char *labelfile, bool waitforarchive) * during the backup. */ ptr = strstr(remaining, "BACKUP FROM:"); - if (sscanf(ptr, "BACKUP FROM: %19s\n", backupfrom) != 1) + if (!ptr || sscanf(ptr, "BACKUP FROM: %19s\n", backupfrom) != 1) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("invalid data in file \"%s\"", BACKUP_LABEL_FILE))); |