RepositoryExternal.mk | 1 + bin/lo-all-static-libs | 1 + download.lst | 4 ++-- external/libwebp/Makefile.vc.patch | 28 ++++++++++++++-------------- sc/source/core/inc/interpre.hxx | 12 ++++++++++++ sc/source/core/tool/interpr1.cxx | 4 ++-- 6 files changed, 32 insertions(+), 18 deletions(-)
New commits: commit 9b1f35eee108b1872c740f40d4dc2b78acc5422a Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Thu Sep 14 08:23:53 2023 +0100 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Thu Sep 28 10:25:25 2023 +0300 tdf#157231 CVE-2023-4863 upgrade to libwebp-1.3.2.tar.gz Change-Id: Ib60466a59069b59fa884654167f33ccc58e59330 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156884 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/download.lst b/download.lst index 8fa8d3c03937..45cffd927314 100644 --- a/download.lst +++ b/download.lst @@ -330,8 +330,8 @@ LIBTOMMATH_TARBALL := ltm-1.0.zip # three static lines # so that git cherry-pick # will not run into conflicts -LIBWEBP_SHA256SUM := b3779627c2dfd31e3d8c4485962c2efe17785ef975e2be5c8c0c9e6cd3c4ef66 -LIBWEBP_TARBALL := libwebp-1.3.1.tar.gz +LIBWEBP_SHA256SUM := 2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4 +LIBWEBP_TARBALL := libwebp-1.3.2.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts commit ce98c89f31792602e5d77d0708a295317971b030 Author: Taichi Haradaguchi <20001...@ymail.ne.jp> AuthorDate: Sat Jul 1 11:56:32 2023 +0900 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Thu Sep 28 10:25:03 2023 +0300 upgrade libwebp to 1.3.1 Fixes CVE-2023-1999. Change-Id: I3d0f5f718242977156729521d14efb1a8d71aee4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153819 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp> (cherry picked from commit c1fe534ae49e7e97b5965a5d1fbf910598215102) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153836 Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> diff --git a/download.lst b/download.lst index 47dca2110dca..8fa8d3c03937 100644 --- a/download.lst +++ b/download.lst @@ -330,8 +330,8 @@ LIBTOMMATH_TARBALL := ltm-1.0.zip # three static lines # so that git cherry-pick # will not run into conflicts -LIBWEBP_SHA256SUM := 64ac4614db292ae8c5aa26de0295bf1623dbb3985054cb656c55e67431def17c -LIBWEBP_TARBALL := libwebp-1.3.0.tar.gz +LIBWEBP_SHA256SUM := b3779627c2dfd31e3d8c4485962c2efe17785ef975e2be5c8c0c9e6cd3c4ef66 +LIBWEBP_TARBALL := libwebp-1.3.1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts commit 15b2b35c425062b253fd6b826d4dc171a2794330 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Apr 3 12:21:58 2023 +0100 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Thu Sep 28 10:24:54 2023 +0300 move to libwebp 1.3.0 release Change-Id: I88205be86e15d9878040958b96dc30043d9eb0b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149959 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150010 diff --git a/download.lst b/download.lst index 88e8a31f3abf..47dca2110dca 100644 --- a/download.lst +++ b/download.lst @@ -330,8 +330,8 @@ LIBTOMMATH_TARBALL := ltm-1.0.zip # three static lines # so that git cherry-pick # will not run into conflicts -LIBWEBP_SHA256SUM := 17fd427d210702a595f08ec619afa2cd3bd323f838ad109666482eac8fff65f0 -LIBWEBP_TARBALL := libwebp-1.3.0-rc1.tar.gz +LIBWEBP_SHA256SUM := 64ac4614db292ae8c5aa26de0295bf1623dbb3985054cb656c55e67431def17c +LIBWEBP_TARBALL := libwebp-1.3.0.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts commit 546a9e2bff8c3ee42736bbfbad3f2de4b61195fb Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Dec 29 20:36:07 2022 +0000 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Thu Sep 28 10:24:46 2023 +0300 Related: ofz Use-of-uninitialized-value Change-Id: I2f6e726f713836295603bf7112371aa4aff2c7c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144868 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150011 diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index ad8f0204cd4e..92ea4ba17670 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -2693,6 +2693,7 @@ $(call gb_LinkTarget_add_libs,$(1),\ else $(call gb_LinkTarget_add_libs,$(1),\ -L$(call gb_UnpackedTarball_get_dir,libwebp)/src/.libs -lwebp \ + -L$(call gb_UnpackedTarball_get_dir,libwebp)/sharpyuv/.libs -lsharpyuv \ ) endif $(call gb_LinkTarget_use_external_project,$(1),libwebp) diff --git a/bin/lo-all-static-libs b/bin/lo-all-static-libs index af4ff25f348b..3db8d803d07a 100755 --- a/bin/lo-all-static-libs +++ b/bin/lo-all-static-libs @@ -125,6 +125,7 @@ echo $INSTDIR/$LIBO_LIB_FOLDER/lib*.a \ $WORKDIR/UnpackedTarball/libvisio/src/lib/.libs/*.a \ $WORKDIR/UnpackedTarball/libtiff/libtiff/.libs/*.a \ $WORKDIR/UnpackedTarball/libwebp/src/.libs/*.a \ + $WORKDIR/UnpackedTarball/libwebp/sharpyuv/.libs/*.a \ $WORKDIR/UnpackedTarball/libwp?/src/lib/.libs/*.a \ $WORKDIR/UnpackedTarball/raptor/src/.libs/*.a \ $WORKDIR/UnpackedTarball/rasqal/src/.libs/*.a \ diff --git a/download.lst b/download.lst index 253fefbf919d..88e8a31f3abf 100644 --- a/download.lst +++ b/download.lst @@ -330,8 +330,8 @@ LIBTOMMATH_TARBALL := ltm-1.0.zip # three static lines # so that git cherry-pick # will not run into conflicts -LIBWEBP_SHA256SUM := 7bf5a8a28cc69bcfa8cb214f2c3095703c6b73ac5fba4d5480c205331d9494df -LIBWEBP_TARBALL := libwebp-1.2.4.tar.gz +LIBWEBP_SHA256SUM := 17fd427d210702a595f08ec619afa2cd3bd323f838ad109666482eac8fff65f0 +LIBWEBP_TARBALL := libwebp-1.3.0-rc1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/libwebp/Makefile.vc.patch b/external/libwebp/Makefile.vc.patch index f13c12410e46..41c899921a1c 100644 --- a/external/libwebp/Makefile.vc.patch +++ b/external/libwebp/Makefile.vc.patch @@ -1,7 +1,7 @@ --- Makefile.vc.sav 2021-07-30 00:55:37.000000000 +0200 +++ Makefile.vc 2022-01-25 17:35:30.206117700 +0100 -@@ -7,11 +7,11 @@ - LIBWEBPDEMUX_BASENAME = libwebpdemux +@@ -8,11 +8,11 @@ + LIBSHARPYUV_BASENAME = libsharpyuv !IFNDEF ARCH -!IF ! [ cl 2>&1 | find "x86" > NUL ] @@ -15,7 +15,7 @@ ARCH = ARM !ELSE !ERROR Unable to auto-detect toolchain architecture! \ -@@ -27,8 +27,8 @@ +@@ -28,8 +28,8 @@ ## Nothing more to do below this line! NOLOGO = /nologo @@ -35,7 +35,7 @@ DIROBJ = $(DIRBASE)\obj DIRLIB = $(DIRBASE)\lib DIRINC = $(DIRBASE)\include -@@ -86,10 +86,10 @@ +@@ -87,10 +87,10 @@ # Target configuration !IF "$(CFG)" == "release-static" @@ -48,9 +48,9 @@ RTLIB = $(RTLIBD) STATICLIBBUILD = TRUE LIBWEBPDECODER_BASENAME = $(LIBWEBPDECODER_BASENAME)_debug -@@ -97,11 +97,11 @@ - LIBWEBPMUX_BASENAME = $(LIBWEBPMUX_BASENAME)_debug +@@ -99,11 +99,11 @@ LIBWEBPDEMUX_BASENAME = $(LIBWEBPDEMUX_BASENAME)_debug + LIBSHARPYUV_BASENAME = $(LIBSHARPYUV_BASENAME)_debug !ELSE IF "$(CFG)" == "release-dynamic" -CC = $(CCNODBG) +CC_ = $(CCNODBG) @@ -62,7 +62,7 @@ RC = $(RCDEBUG) RTLIB = $(RTLIBD) DLLBUILD = TRUE -@@ -112,7 +112,7 @@ +@@ -115,7 +115,7 @@ !ENDIF !IF "$(STATICLIBBUILD)" == "TRUE" @@ -71,25 +71,25 @@ CFGSET = TRUE LIBWEBPDECODER = $(DIRLIB)\$(LIBWEBPDECODER_BASENAME).lib LIBWEBP = $(DIRLIB)\$(LIBWEBP_BASENAME).lib -@@ -120,7 +120,7 @@ +@@ -123,7 +123,7 @@ LIBWEBPDEMUX = $(DIRLIB)\$(LIBWEBPDEMUX_BASENAME).lib + LIBSHARPYUV = $(DIRLIB)\$(LIBSHARPYUV_BASENAME).lib !ELSE IF "$(DLLBUILD)" == "TRUE" - DLLINC = webp_dll.h --CC = $(CC) /I$(DIROBJ) /FI$(DLLINC) $(RTLIB) /DWEBP_DLL -+CC_ = $(CC_) /I$(DIROBJ) /FI$(DLLINC) $(RTLIB) /DWEBP_DLL +-CC = $(CC) /I$(DIROBJ) $(RTLIB) /DWEBP_DLL ++CC_ = $(CC_) /I$(DIROBJ) $(RTLIB) /DWEBP_DLL LIBWEBPDECODER = $(DIRLIB)\$(LIBWEBPDECODER_BASENAME)_dll.lib LIBWEBP = $(DIRLIB)\$(LIBWEBP_BASENAME)_dll.lib LIBWEBPMUX = $(DIRLIB)\$(LIBWEBPMUX_BASENAME)_dll.lib -@@ -421,7 +421,7 @@ - $(DIROBJ)\$(DLLINC) +@@ -434,7 +434,7 @@ + !IF "$(DLLBUILD)" == "TRUE" {$(DIROBJ)}.c{$(DIROBJ)}.obj: - $(CC) $(CFLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$@ $< + $(CC_) $(CFLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$@ $< {src}.rc{$(DIROBJ)}.res: $(RC) /fo$@ $< -@@ -469,41 +469,41 @@ +@@ -467,41 +467,41 @@ # File-specific flag builds. Note batch rules take precedence over wildcards, # so for now name each file individually. $(DIROBJ)\examples\anim_diff.obj: examples\anim_diff.c commit 9ebabbd7f5b157c9644ce7f01c4c683184a50ba6 Author: Eike Rathke <er...@redhat.com> AuthorDate: Fri Feb 17 12:03:54 2023 +0100 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Thu Sep 28 10:15:53 2023 +0300 Stack check safety belt before fishing in muddy waters Have it hit hard in debug builds. Change-Id: I9ea54844a0661fd7a75616a2876983a74b2d5bad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147205 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Jenkins (cherry picked from commit 9d91fbba6f374fa1c10b38eae003da89bd4e6d4b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147244 Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx index 85d2955003af..a6bd98320f71 100644 --- a/sc/source/core/inc/interpre.hxx +++ b/sc/source/core/inc/interpre.hxx @@ -221,6 +221,7 @@ private: inline bool MustHaveParamCount( short nAct, short nMust ); inline bool MustHaveParamCount( short nAct, short nMust, short nMax ); inline bool MustHaveParamCountMin( short nAct, short nMin ); + inline bool MustHaveParamCountMinWithStackCheck( short nAct, short nMin ); void PushParameterExpected(); void PushIllegalParameter(); void PushIllegalArgument(); @@ -1074,6 +1075,17 @@ inline bool ScInterpreter::MustHaveParamCountMin( short nAct, short nMin ) return false; } +inline bool ScInterpreter::MustHaveParamCountMinWithStackCheck( short nAct, short nMin ) +{ + assert(sp >= nAct); + if (sp < nAct) + { + PushParameterExpected(); + return false; + } + return MustHaveParamCountMin( nAct, nMin); +} + inline bool ScInterpreter::CheckStringPositionArgument( double & fVal ) { if (!std::isfinite( fVal)) diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index d82acb37494c..405d9fe00023 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -7643,7 +7643,7 @@ void ScInterpreter::ScVLookup() void ScInterpreter::ScSubTotal() { sal_uInt8 nParamCount = GetByte(); - if ( !MustHaveParamCountMin( nParamCount, 2 ) ) + if ( !MustHaveParamCountMinWithStackCheck( nParamCount, 2 ) ) return; // We must fish the 1st parameter deep from the stack! And push it on top. @@ -7690,7 +7690,7 @@ void ScInterpreter::ScSubTotal() void ScInterpreter::ScAggregate() { sal_uInt8 nParamCount = GetByte(); - if ( !MustHaveParamCountMin( nParamCount, 3 ) ) + if ( !MustHaveParamCountMinWithStackCheck( nParamCount, 3 ) ) return; const FormulaError nErr = nGlobalError;