diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2022-03-12 21:07:07 +0100 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2022-03-12 22:46:07 +0100 |
commit | 5c7b0e071ffb7e6fe7816b7d29bd4bacc239eab2 (patch) | |
tree | 6203dd83badf14a7620ac3a8344cb6cf7cf88cfb | |
parent | 1ff11b627b92163a267a6ff821db8c7d786da0b1 (diff) | |
download | rockbox-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.cpp | 12 |
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 | */ |
44 | bool BootloaderInstallSansa::install(void) | 44 | bool 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 | ||
237 | bool BootloaderInstallSansa::sansaInitialize(struct sansa_t *sansa) | 233 | bool 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()) { |