mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-18 07:55:21 +01:00
imagewriter: Resolve TOCTOU in getFilteredOSList
This commit is contained in:
parent
fc2b67a20c
commit
aeb4ceb73f
1 changed files with 11 additions and 9 deletions
|
@ -533,22 +533,24 @@ void ImageWriter::handleNetworkRequestFinished(QNetworkReply *data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray ImageWriter::getFilteredOSlist() {
|
QByteArray ImageWriter::getFilteredOSlist() {
|
||||||
QJsonArray referenceArray = {};
|
QJsonArray reference_os_list_array = {};
|
||||||
QJsonObject referenceImagerMeta = {};
|
QJsonObject reference_imager_metadata = {};
|
||||||
if (!_completeOsList.isEmpty()) {
|
{
|
||||||
std::lock_guard<std::mutex> lock(_deviceListMutationMutex);
|
std::lock_guard<std::mutex> lock(_deviceListMutationMutex);
|
||||||
referenceArray = _completeOsList.object()["os_list"].toArray();
|
if (!_completeOsList.isEmpty()) {
|
||||||
referenceImagerMeta = _completeOsList.object()["imager"].toObject();
|
reference_os_list_array = _completeOsList.object()["os_list"].toArray();
|
||||||
|
reference_imager_metadata = _completeOsList.object()["imager"].toObject();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
referenceArray.append(QJsonObject({
|
reference_os_list_array.append(QJsonObject({
|
||||||
{"name", tr("Erase")},
|
{"name", tr("Erase")},
|
||||||
{"description", tr("Format card as FAT32")},
|
{"description", tr("Format card as FAT32")},
|
||||||
{"icon", "icons/erase.png"},
|
{"icon", "icons/erase.png"},
|
||||||
{"url", "internal://format"},
|
{"url", "internal://format"},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
referenceArray.append(QJsonObject({
|
reference_os_list_array.append(QJsonObject({
|
||||||
{"name", tr("Use custom")},
|
{"name", tr("Use custom")},
|
||||||
{"description", tr("Select a custom .img from your computer")},
|
{"description", tr("Select a custom .img from your computer")},
|
||||||
{"icon", "icons/use_custom.png"},
|
{"icon", "icons/use_custom.png"},
|
||||||
|
@ -557,8 +559,8 @@ QByteArray ImageWriter::getFilteredOSlist() {
|
||||||
|
|
||||||
return QJsonDocument(
|
return QJsonDocument(
|
||||||
QJsonObject({
|
QJsonObject({
|
||||||
{"imager", referenceImagerMeta},
|
{"imager", reference_imager_metadata},
|
||||||
{"os_list", referenceArray},
|
{"os_list", reference_os_list_array},
|
||||||
}
|
}
|
||||||
)).toJson();
|
)).toJson();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue