You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.1 KiB
61 lines
2.1 KiB
3 years ago
|
commit 6ccb5528ecff0cf0db5fe2f81b26a79959e87902
|
||
|
Author: Slávek Banko <slavek.banko@axis.cz>
|
||
|
Date: Fri Oct 29 03:47:53 2021 +0200
|
||
|
|
||
|
Prevent null pointer deference in methods for selection.
|
||
|
This resolves the crash when exporting the Basket archive.
|
||
|
|
||
|
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
|
||
|
(cherry picked from commit a08c6ac9e3c8ac162ce08b730fd6108e2f71213c)
|
||
|
|
||
|
diff --git a/src/archive.cpp b/src/archive.cpp
|
||
|
index 3f3377c..aec789f 100644
|
||
|
--- a/src/archive.cpp
|
||
|
+++ b/src/archive.cpp
|
||
|
@@ -228,7 +228,8 @@ void Archive::saveBasketToArchive(Basket *basket, bool recursive, KTar *tar, TQS
|
||
|
|
||
|
// Recursively save child baskets:
|
||
|
BasketListViewItem *item = Global::bnpView->listViewItemForBasket(basket);
|
||
|
- if (recursive && item->firstChild()) {
|
||
|
+ if (recursive && item && item->firstChild())
|
||
|
+ {
|
||
|
for (BasketListViewItem *child = (BasketListViewItem*) item->firstChild(); child; child = (BasketListViewItem*) child->nextSibling()) {
|
||
|
saveBasketToArchive(child->basket(), recursive, tar, backgrounds, tempFolder, progress);
|
||
|
}
|
||
|
diff --git a/src/basket.cpp b/src/basket.cpp
|
||
|
index a4edb31..67107d2 100644
|
||
|
--- a/src/basket.cpp
|
||
|
+++ b/src/basket.cpp
|
||
|
@@ -4469,12 +4469,20 @@ void Basket::noteUngroup()
|
||
|
|
||
|
void Basket::unplugSelection(NoteSelection *selection)
|
||
|
{
|
||
|
+ if (!selection)
|
||
|
+ {
|
||
|
+ return;
|
||
|
+ }
|
||
|
for (NoteSelection *toUnplug = selection->firstStacked(); toUnplug; toUnplug = toUnplug->nextStacked())
|
||
|
unplugNote(toUnplug->note);
|
||
|
}
|
||
|
|
||
|
void Basket::insertSelection(NoteSelection *selection, Note *after)
|
||
|
{
|
||
|
+ if (!selection)
|
||
|
+ {
|
||
|
+ return;
|
||
|
+ }
|
||
|
for (NoteSelection *toUnplug = selection->firstStacked(); toUnplug; toUnplug = toUnplug->nextStacked()) {
|
||
|
if (toUnplug->note->isGroup()) {
|
||
|
Note *group = new Note(this);
|
||
|
@@ -4496,6 +4504,10 @@ void Basket::insertSelection(NoteSelection *selection, Note *after)
|
||
|
|
||
|
void Basket::selectSelection(NoteSelection *selection)
|
||
|
{
|
||
|
+ if (!selection)
|
||
|
+ {
|
||
|
+ return;
|
||
|
+ }
|
||
|
for (NoteSelection *toUnplug = selection->firstStacked(); toUnplug; toUnplug = toUnplug->nextStacked()) {
|
||
|
if (toUnplug->note->isGroup())
|
||
|
selectSelection(toUnplug);
|