summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut2012-03-14 20:41:50 +0000
committerPeter Eisentraut2012-03-14 20:41:50 +0000
commite684ab5e1ec900bb7b73fb6f8a655e0ec54b3720 (patch)
tree15ecb39493d63e6128c78a50949d8a6f5532d79a
parentacfaa596ccd90e161bcc09bb00e755e65d9c068c (diff)
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
-rw-r--r--src/backend/access/transam/xlog.c2
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)));