diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 18fc23286aa30fa2534b6d0fa56365a6f790195e..ff7f521a1b1bb33b010221c0deef1a7ec8591266 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)));