@@ -274,6 +274,7 @@ validate_wal(pgBackup *backup,
274274TimeLineID tli )
275275{
276276XLogRecPtr startpoint = backup -> start_lsn ;
277+ char * backup_id ;
277278XLogRecord * record ;
278279XLogReaderState * xlogreader ;
279280char * errormsg ;
@@ -283,17 +284,20 @@ validate_wal(pgBackup *backup,
283284char last_timestamp [100 ],
284285target_timestamp [100 ];
285286bool all_wal = false;
286- char backup_xlog_path [MAXPGPATH ];
287+ char backup_xlog_path [MAXPGPATH ];
288+
289+ /* We need free() this later */
290+ backup_id = base36enc (backup -> start_time );
287291
288292if (!XRecOffIsValid (backup -> start_lsn ))
289293elog (ERROR ,"Invalid start_lsn value %X/%X of backup %s" ,
290294 (uint32 ) (backup -> start_lsn >>32 ), (uint32 ) (backup -> start_lsn ),
291- base36enc ( backup -> start_time ) );
295+ backup_id );
292296
293297if (!XRecOffIsValid (backup -> stop_lsn ))
294298elog (ERROR ,"Invalid stop_lsn value %X/%X of backup %s" ,
295299 (uint32 ) (backup -> stop_lsn >>32 ), (uint32 ) (backup -> stop_lsn ),
296- base36enc ( backup -> start_time ) );
300+ backup_id );
297301
298302/*
299303 * Check that the backup has all wal files needed
@@ -302,13 +306,15 @@ validate_wal(pgBackup *backup,
302306if (backup -> stream )
303307{
304308sprintf (backup_xlog_path ,"/%s/%s/%s/%s" ,
305- backup_instance_path ,base36enc ( backup -> start_time ) ,DATABASE_DIR ,PG_XLOG_DIR );
309+ backup_instance_path ,backup_id ,DATABASE_DIR ,PG_XLOG_DIR );
306310
307311validate_backup_wal_from_start_to_stop (backup ,backup_xlog_path ,tli );
308312}
309313else
310314validate_backup_wal_from_start_to_stop (backup , (char * )archivedir ,tli );
311315
316+ free (backup_id );
317+
312318/* If recovery target is provided, ensure that archive exists. */
313319if (dir_is_empty (archivedir )
314320&& (TransactionIdIsValid (target_xid )|| target_time != 0 ))