diff --git a/src/services/backup-uploader.ts b/src/services/backup-uploader.ts index ff369e7..d920211 100644 --- a/src/services/backup-uploader.ts +++ b/src/services/backup-uploader.ts @@ -89,12 +89,22 @@ function sortRemoteItems(items: RemoteBackupItem[]): RemoteBackupItem[] { } function decodeXmlText(value: string): string { - return value - .replace(/&/g, '&') - .replace(/</g, '<') - .replace(/>/g, '>') - .replace(/"/g, '"') - .replace(/'/g, "'"); + return value.replace(/&(amp|lt|gt|quot|#39);/g, (_match, entity) => { + switch (entity) { + case 'amp': + return '&'; + case 'lt': + return '<'; + case 'gt': + return '>'; + case 'quot': + return '"'; + case '#39': + return "'"; + default: + return _match; + } + }); } function parseHttpDate(value: string): string | null {