summaryrefslogtreecommitdiff
path: root/hwpfilter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2022-02-24 09:33:26 +0000
committerCaolán McNamara <caolanm@redhat.com>2022-02-24 14:55:09 +0100
commiteaef857346e08d504c25ab1e9112a335f10cd345 (patch)
tree374343034cfe014eeaa93c8181710912bb13d458 /hwpfilter
parent602576cb86aff3b32f1781090d4a43af6ec193d8 (diff)
ofz#44990 Null-dereference
Change-Id: Ia3af8b544f778698702552e42a5daa5269617916 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130477 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'hwpfilter')
-rw-r--r--hwpfilter/qa/cppunit/data/pass/ofz44990-1.hwp1
-rw-r--r--hwpfilter/source/hwpreader.cxx18
2 files changed, 13 insertions, 6 deletions
diff --git a/hwpfilter/qa/cppunit/data/pass/ofz44990-1.hwp b/hwpfilter/qa/cppunit/data/pass/ofz44990-1.hwp
new file mode 100644
index 000000000000..f3a32c7b7b51
--- /dev/null
+++ b/hwpfilter/qa/cppunit/data/pass/ofz44990-1.hwp
@@ -0,0 +1 @@
+HWP Document File V3.00  bf```082 0 00 0)00 umen(0* 0 ;1 ()PH \ No newline at end of file
diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx
index 40bd3186c288..c8c09e922d29 100644
--- a/hwpfilter/source/hwpreader.cxx
+++ b/hwpfilter/source/hwpreader.cxx
@@ -1094,7 +1094,8 @@ void HwpReader::makeMasterStyles()
d->bInHeader = true;
d->pPn = pPage->pagenumber;
}
- parsePara(pPage->header->plist.front().get());
+ if (!pPage->header->plist.empty())
+ parsePara(pPage->header->plist.front().get());
d->bInHeader = false;
d->pPn = nullptr;
rendEl("style:header");
@@ -1109,7 +1110,8 @@ void HwpReader::makeMasterStyles()
d->pPn = pPage->pagenumber;
d->nPnPos = 3;
}
- parsePara(pPage->header_even->plist.front().get());
+ if (!pPage->header_even->plist.empty())
+ parsePara(pPage->header_even->plist.front().get());
d->bInHeader = false;
d->pPn = nullptr;
d->nPnPos = 0;
@@ -1144,7 +1146,8 @@ void HwpReader::makeMasterStyles()
d->nPnPos = 1;
d->pPn = pPage->pagenumber;
}
- parsePara(pPage->header_odd->plist.front().get());
+ if (!pPage->header_odd->plist.empty())
+ parsePara(pPage->header_odd->plist.front().get());
d->bInHeader = false;
d->pPn = nullptr;
d->nPnPos = 0;
@@ -1195,7 +1198,8 @@ void HwpReader::makeMasterStyles()
d->bInHeader = true;
d->pPn = pPage->pagenumber;
}
- parsePara(pPage->footer->plist.front().get());
+ if (!pPage->footer->plist.empty())
+ parsePara(pPage->footer->plist.front().get());
d->bInHeader = false;
d->pPn = nullptr;
rendEl("style:footer");
@@ -1210,7 +1214,8 @@ void HwpReader::makeMasterStyles()
d->pPn = pPage->pagenumber;
d->nPnPos = 3;
}
- parsePara(pPage->footer_even->plist.front().get());
+ if (!pPage->footer_even->plist.empty())
+ parsePara(pPage->footer_even->plist.front().get());
d->bInHeader = false;
d->pPn = nullptr;
d->nPnPos = 0;
@@ -1245,7 +1250,8 @@ void HwpReader::makeMasterStyles()
d->pPn = pPage->pagenumber;
d->nPnPos = 1;
}
- parsePara(pPage->footer_odd->plist.front().get());
+ if (!pPage->footer_odd->plist.empty())
+ parsePara(pPage->footer_odd->plist.front().get());
d->bInHeader = false;
d->pPn = nullptr;
d->nPnPos = 0;