From: Peter Eisentraut Date: Wed, 14 Mar 2012 20:41:50 +0000 (+0200) Subject: Add additional safety check against invalid backup label file X-Git-Tag: REL9_2_BETA1~283 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e684ab5e1ec900bb7b73fb6f8a655e0ec54b3720;p=postgresql 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 --- diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 18fc23286a..ff7f521a1b 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)));