1
0
Fork 0
forked from len0rd/rockbox

rbutil: Fix a crash for devices without bootloader file.

Don't try to get a bootloader filename from an empty list. This happens
if the device doesn't have a bootloader file on disk.

Change-Id: Idd4c265e7ae298913c5feefb3963120867a0e858
This commit is contained in:
Dominik Riebeling 2022-03-08 22:25:48 +01:00
parent 911b216aff
commit 3cebc983a2

View file

@ -116,19 +116,24 @@ void BootloaderInstallBase::progressAborted(void)
bool BootloaderInstallBase::backup(QString to) bool BootloaderInstallBase::backup(QString to)
{ {
LOG_INFO() << "Backing up bootloader file"; LOG_INFO() << "Backing up bootloader file";
QDir targetDir("."); if(!m_blfile.isEmpty()) {
emit logItem(tr("Creating backup of original firmware file."), LOGINFO); QDir targetDir(".");
if(!targetDir.mkpath(to)) { emit logItem(tr("Creating backup of original firmware file."), LOGINFO);
emit logItem(tr("Creating backup folder failed"), LOGERROR); if(!targetDir.mkpath(to)) {
return false; emit logItem(tr("Creating backup folder failed"), LOGERROR);
return false;
}
QString tofile = to + "/" + QFileInfo(m_blfile).fileName();
LOG_INFO() << "trying to backup" << m_blfile << "to" << tofile;
if(!QFile::copy(Utils::resolvePathCase(m_blfile), tofile)) {
emit logItem(tr("Creating backup copy failed."), LOGERROR);
return false;
}
emit logItem(tr("Backup created."), LOGOK);
} }
QString tofile = to + "/" + QFileInfo(m_blfile).fileName(); else {
LOG_INFO() << "trying to backup" << m_blfile << "to" << tofile; LOG_INFO() << "Bootloader backup not supported for current device.";
if(!QFile::copy(Utils::resolvePathCase(m_blfile), tofile)) {
emit logItem(tr("Creating backup copy failed."), LOGERROR);
return false;
} }
emit logItem(tr("Backup created."), LOGOK);
return true; return true;
} }
@ -215,9 +220,6 @@ void BootloaderInstallBase::setBlFile(QStringList sl)
m_blfile = sl.at(a); m_blfile = sl.at(a);
} }
} }
if(m_blfile.isEmpty()) {
m_blfile = sl.at(0);
}
} }