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
AllowShortFunctionsOnASingleLine: InlineOnly
BreakConstructorInitializers: BeforeColon
BreakConstructorInitializersBeforeComma: true
BreakConstructorInitializers: AfterColon
BreakConstructorInitializersBeforeComma: false
IndentCaseLabels: true
ReflowComments: false
Cpp11BracedListStyle: false

View file

@ -1,9 +1,10 @@
//
// DomainContentBackupManager.cpp
// libraries/octree/src
// libraries/domain-server/src
//
// Created by Brad Hefta-Gaub on 8/21/13.
// Copyright 2013 High Fidelity, Inc.
// Created by Ryan Huffman on 1/01/18.
// Adapted from OctreePersistThread
// Copyright 2018 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// 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 AUTOMATIC_BACKUP_PREFIX { "autobackup-" };
static const QString MANUAL_BACKUP_PREFIX { "backup-" };
static const QString MANUAL_BACKUP_NAME_RE { "[a-zA-Z0-9\\-_ ]+" };
void DomainContentBackupManager::addBackupHandler(BackupHandlerPointer handler) {
_backupHandlers.push_back(std::move(handler));
@ -567,9 +569,17 @@ void DomainContentBackupManager::createManualBackup(MiniPromise::Promise promise
return;
}
QRegExp nameRE { MANUAL_BACKUP_NAME_RE };
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({
{ "success", success }

View file

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