vcl/source/gdi/jobset.cxx | 7 +++++++ 1 file changed, 7 insertions(+) New commits: commit 9c1f3718d193badaba271a46800ffde8051baf57 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Dec 30 21:19:15 2020 +0000 Commit: Michael Stahl <michael.st...@allotropia.de> CommitDate: Tue Nov 16 14:13:23 2021 +0100
ofz#29113 short read Change-Id: I107d8abeac419ba4e70a5880054c9195c60464ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108527 Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit ab3829bf74667044d9b0f5b96903bbafda5171f6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125281 Tested-by: Michael Stahl <michael.st...@allotropia.de> Reviewed-by: Michael Stahl <michael.st...@allotropia.de> diff --git a/vcl/source/gdi/jobset.cxx b/vcl/source/gdi/jobset.cxx index 95c8669a7f97..6ef1d51b3ff0 100644 --- a/vcl/source/gdi/jobset.cxx +++ b/vcl/source/gdi/jobset.cxx @@ -261,6 +261,13 @@ SvStream& ReadJobSetup( SvStream& rIStream, JobSetup& rJobSetup ) if ( nSystem == JOBSET_FILE364_SYSTEM || nSystem == JOBSET_FILE605_SYSTEM ) { + if (nRead < sizeof(ImplOldJobSetupData) + sizeof(Impl364JobSetupData)) + { + SAL_WARN("vcl", "Parsing error: " << sizeof(ImplOldJobSetupData) + sizeof(Impl364JobSetupData) << + " required, but " << nRead << " available"); + return rIStream; + } + Impl364JobSetupData* pOldJobData = reinterpret_cast<Impl364JobSetupData*>(pTempBuf.get() + sizeof( ImplOldJobSetupData )); sal_uInt16 nOldJobDataSize = SVBT16ToShort( pOldJobData->nSize ); rJobData.SetSystem( SVBT16ToShort( pOldJobData->nSystem ) );