Merge pull request #12468 from huffman/fix/reject-invalid-manual-backup-names

Fix/reject invalid manual backup names
This commit is contained in:
Stephen Birarda 2018-02-22 12:17:42 -07:00 committed by GitHub
commit 3c39c92879
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 10 deletions

View file

@ -22,8 +22,8 @@ BraceWrapping:
AccessModifierOffset: -4 AccessModifierOffset: -4
AllowShortFunctionsOnASingleLine: InlineOnly AllowShortFunctionsOnASingleLine: InlineOnly
BreakConstructorInitializers: BeforeColon BreakConstructorInitializers: AfterColon
BreakConstructorInitializersBeforeComma: true BreakConstructorInitializersBeforeComma: false
IndentCaseLabels: true IndentCaseLabels: true
ReflowComments: false ReflowComments: false
Cpp11BracedListStyle: false Cpp11BracedListStyle: false

View file

@ -1,9 +1,10 @@
// //
// DomainContentBackupManager.cpp // DomainContentBackupManager.cpp
// libraries/octree/src // libraries/domain-server/src
// //
// Created by Brad Hefta-Gaub on 8/21/13. // Created by Ryan Huffman on 1/01/18.
// Copyright 2013 High Fidelity, Inc. // Adapted from OctreePersistThread
// Copyright 2018 High Fidelity, Inc.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@ -44,6 +45,7 @@ static const QString DATETIME_FORMAT { "yyyy-MM-dd_HH-mm-ss" };
static const QString DATETIME_FORMAT_RE { "\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}" }; static const QString DATETIME_FORMAT_RE { "\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}" };
static const QString AUTOMATIC_BACKUP_PREFIX { "autobackup-" }; static const QString AUTOMATIC_BACKUP_PREFIX { "autobackup-" };
static const QString MANUAL_BACKUP_PREFIX { "backup-" }; static const QString MANUAL_BACKUP_PREFIX { "backup-" };
static const QString MANUAL_BACKUP_NAME_RE { "[a-zA-Z0-9\\-_ ]+" };
void DomainContentBackupManager::addBackupHandler(BackupHandlerPointer handler) { void DomainContentBackupManager::addBackupHandler(BackupHandlerPointer handler) {
_backupHandlers.push_back(std::move(handler)); _backupHandlers.push_back(std::move(handler));
@ -567,9 +569,17 @@ void DomainContentBackupManager::createManualBackup(MiniPromise::Promise promise
return; return;
} }
QRegExp nameRE { MANUAL_BACKUP_NAME_RE };
bool success; bool success;
QString path;
std::tie(success, path) = createBackup(MANUAL_BACKUP_PREFIX, name); if (!nameRE.exactMatch(name)) {
qDebug() << "Cannot create manual backup with invalid name: " << name;
success = false;
} else {
QString path;
std::tie(success, path) = createBackup(MANUAL_BACKUP_PREFIX, name);
}
promise->resolve({ promise->resolve({
{ "success", success } { "success", success }

View file

@ -1,9 +1,10 @@
// //
// DomainContentBackupManager.h // DomainContentBackupManager.h
// libraries/octree/src // libraries/domain-server/src
// //
// Created by Brad Hefta-Gaub on 8/21/13. // Created by Ryan Huffman on 1/01/18.
// Copyright 2013 High Fidelity, Inc. // Adapted from OctreePersistThread
// Copyright 2018 High Fidelity, Inc.
// //
// //
// //