summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2022-03-12 21:07:07 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2022-03-12 22:46:07 +0100
commit5c7b0e071ffb7e6fe7816b7d29bd4bacc239eab2 (patch)
tree6203dd83badf14a7620ac3a8344cb6cf7cf88cfb
parent1ff11b627b92163a267a6ff821db8c7d786da0b1 (diff)
downloadrockbox-5c7b0e071ffb7e6fe7816b7d29bd4bacc239eab2.tar.gz
rockbox-5c7b0e071ffb7e6fe7816b7d29bd4bacc239eab2.zip
rbutil: Fix crash on sansapatcher access.
We now initialize sectorbuf explicitly, and there are situation where it wasn't initialized explicitly. Change-Id: I35516a1fa7326c0861885ffa058737de19285c2c
-rw-r--r--utils/rbutilqt/base/bootloaderinstallsansa.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/utils/rbutilqt/base/bootloaderinstallsansa.cpp b/utils/rbutilqt/base/bootloaderinstallsansa.cpp
index 06f3ef6680..f6e345c7e2 100644
--- a/utils/rbutilqt/base/bootloaderinstallsansa.cpp
+++ b/utils/rbutilqt/base/bootloaderinstallsansa.cpp
@@ -43,11 +43,7 @@ BootloaderInstallSansa::~BootloaderInstallSansa()
43 */ 43 */
44bool BootloaderInstallSansa::install(void) 44bool BootloaderInstallSansa::install(void)
45{ 45{
46 // initialize sector buffer. The sector buffer is part of the sansa_t 46 sansaInitialize(&sansa);
47 // structure, so a second instance of this class will have its own buffer.
48 if(sansa.sectorbuf == nullptr) {
49 sansa_alloc_buffer(&sansa, BUFFER_SIZE);
50 }
51 47
52 if(sansa.sectorbuf == nullptr) { 48 if(sansa.sectorbuf == nullptr) {
53 emit logItem(tr("Error: can't allocate buffer memory!"), LOGERROR); 49 emit logItem(tr("Error: can't allocate buffer memory!"), LOGERROR);
@@ -236,6 +232,12 @@ BootloaderInstallBase::BootloaderType BootloaderInstallSansa::installed(void)
236 232
237bool BootloaderInstallSansa::sansaInitialize(struct sansa_t *sansa) 233bool BootloaderInstallSansa::sansaInitialize(struct sansa_t *sansa)
238{ 234{
235 // initialize sector buffer. The sector buffer is part of the sansa_t
236 // structure, so a second instance of this class will have its own buffer.
237 if(sansa->sectorbuf == nullptr) {
238 sansa_alloc_buffer(sansa, BUFFER_SIZE);
239 }
240
239 if(!m_blfile.isEmpty()) { 241 if(!m_blfile.isEmpty()) {
240 QString devicename = Utils::resolveDevicename(m_blfile); 242 QString devicename = Utils::resolveDevicename(m_blfile);
241 if(devicename.isEmpty()) { 243 if(devicename.isEmpty()) {