From 5c7b0e071ffb7e6fe7816b7d29bd4bacc239eab2 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sat, 12 Mar 2022 21:07:07 +0100 Subject: rbutil: Fix crash on sansapatcher access. We now initialize sectorbuf explicitly, and there are situation where it wasn't initialized explicitly. Change-Id: I35516a1fa7326c0861885ffa058737de19285c2c --- utils/rbutilqt/base/bootloaderinstallsansa.cpp | 12 +++++++----- 1 file 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() */ bool BootloaderInstallSansa::install(void) { - // initialize sector buffer. The sector buffer is part of the sansa_t - // structure, so a second instance of this class will have its own buffer. - if(sansa.sectorbuf == nullptr) { - sansa_alloc_buffer(&sansa, BUFFER_SIZE); - } + sansaInitialize(&sansa); if(sansa.sectorbuf == nullptr) { emit logItem(tr("Error: can't allocate buffer memory!"), LOGERROR); @@ -236,6 +232,12 @@ BootloaderInstallBase::BootloaderType BootloaderInstallSansa::installed(void) bool BootloaderInstallSansa::sansaInitialize(struct sansa_t *sansa) { + // initialize sector buffer. The sector buffer is part of the sansa_t + // structure, so a second instance of this class will have its own buffer. + if(sansa->sectorbuf == nullptr) { + sansa_alloc_buffer(sansa, BUFFER_SIZE); + } + if(!m_blfile.isEmpty()) { QString devicename = Utils::resolveDevicename(m_blfile); if(devicename.isEmpty()) { -- cgit v1.2.3