summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2022-03-12 21:45:07 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2022-03-12 22:46:07 +0100
commitce70e34476a4a7eb23b4b7585a1a3277e6fcb38a (patch)
treed03cfe405a37bb61a6b88325c1d26b0247a24b5b
parent5c7b0e071ffb7e6fe7816b7d29bd4bacc239eab2 (diff)
downloadrockbox-ce70e34476a4a7eb23b4b7585a1a3277e6fcb38a.tar.gz
rockbox-ce70e34476a4a7eb23b4b7585a1a3277e6fcb38a.zip
rbutil: Fix ipodpatcher bootloader uninstall.
Fix mountpoint not passed and sectorbuf not initialized properly. Change-Id: Ifa9d9e159767b20a51841ee422be59feca95c757
-rw-r--r--utils/rbutilqt/base/bootloaderinstallipod.cpp11
-rw-r--r--utils/rbutilqt/rbutilqt.cpp5
2 files changed, 11 insertions, 5 deletions
diff --git a/utils/rbutilqt/base/bootloaderinstallipod.cpp b/utils/rbutilqt/base/bootloaderinstallipod.cpp
index faab3d10f5..c556ea27d3 100644
--- a/utils/rbutilqt/base/bootloaderinstallipod.cpp
+++ b/utils/rbutilqt/base/bootloaderinstallipod.cpp
@@ -42,11 +42,7 @@ BootloaderInstallIpod::~BootloaderInstallIpod()
42 42
43bool BootloaderInstallIpod::install(void) 43bool BootloaderInstallIpod::install(void)
44{ 44{
45 // initialize sector buffer. The sector buffer is part of the ipod_t 45 ipodInitialize(&ipod);
46 // structure, so a second instance of this class will have its own buffer.
47 if(ipod.sectorbuf == nullptr) {
48 ipod_alloc_buffer(&ipod, BUFFER_SIZE);
49 }
50 46
51 if(ipod.sectorbuf == nullptr) { 47 if(ipod.sectorbuf == nullptr) {
52 emit logItem(tr("Error: can't allocate buffer memory!"), LOGERROR); 48 emit logItem(tr("Error: can't allocate buffer memory!"), LOGERROR);
@@ -227,6 +223,11 @@ BootloaderInstallBase::Capabilities BootloaderInstallIpod::capabilities(void)
227 */ 223 */
228bool BootloaderInstallIpod::ipodInitialize(struct ipod_t *ipod) 224bool BootloaderInstallIpod::ipodInitialize(struct ipod_t *ipod)
229{ 225{
226 // initialize sector buffer. The sector buffer is part of the ipod_t
227 // structure, so a second instance of this class will have its own buffer.
228 if(ipod->sectorbuf == nullptr) {
229 ipod_alloc_buffer(ipod, BUFFER_SIZE);
230 }
230 if(!m_blfile.isEmpty()) { 231 if(!m_blfile.isEmpty()) {
231 QString devicename = Utils::resolveDevicename(m_blfile); 232 QString devicename = Utils::resolveDevicename(m_blfile);
232 if(devicename.isEmpty()) { 233 if(devicename.isEmpty()) {
diff --git a/utils/rbutilqt/rbutilqt.cpp b/utils/rbutilqt/rbutilqt.cpp
index 20828849a9..9cb5b7cf30 100644
--- a/utils/rbutilqt/rbutilqt.cpp
+++ b/utils/rbutilqt/rbutilqt.cpp
@@ -473,6 +473,11 @@ void RbUtilQt::uninstallBootloader(void)
473 blfilepath.append(RbSettings::value(RbSettings::Mountpoint).toString() 473 blfilepath.append(RbSettings::value(RbSettings::Mountpoint).toString()
474 + blfile.at(a)); 474 + blfile.at(a));
475 } 475 }
476 // on devices without a bootloader file we use the mointpoint. The
477 // installer will use that to determine the correct device.
478 if(blfile.isEmpty()) {
479 blfilepath.append(RbSettings::value(RbSettings::Mountpoint).toString());
480 }
476 bl->setBlFile(blfilepath); 481 bl->setBlFile(blfilepath);
477 bl->setLogfile(RbSettings::value(RbSettings::Mountpoint).toString() 482 bl->setLogfile(RbSettings::value(RbSettings::Mountpoint).toString()
478 + "/.rockbox/rbutil.log"); 483 + "/.rockbox/rbutil.log");