mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
lz4: patch CVE-2025-62813
Pick commit mentioned in NVD report. (From OE-Core rev: 612d09f6b9e262640ed3ee0ee81ac4b6d7c29f4d) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
bee2fe9cc5
commit
48ab50b55c
69
meta/recipes-support/lz4/files/CVE-2025-62813.patch
Normal file
69
meta/recipes-support/lz4/files/CVE-2025-62813.patch
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
From f64efec011c058bd70348576438abac222fe6c82 Mon Sep 17 00:00:00 2001
|
||||||
|
From: louislafosse <louis.lafosse@epitech.eu>
|
||||||
|
Date: Mon, 31 Mar 2025 20:48:52 +0200
|
||||||
|
Subject: [PATCH] fix(null) : improve error handlings when passing a null
|
||||||
|
pointer to some functions from lz4frame
|
||||||
|
|
||||||
|
CVE: CVE-2025-62813
|
||||||
|
Upstream-Status: Backport [https://github.com/lz4/lz4/commit/f64efec011c058bd70348576438abac222fe6c82]
|
||||||
|
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||||
|
---
|
||||||
|
lib/lz4frame.c | 15 +++++++++++++--
|
||||||
|
tests/frametest.c | 9 ++++++---
|
||||||
|
2 files changed, 19 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/lz4frame.c b/lib/lz4frame.c
|
||||||
|
index 85daca7b..c9e4a3cf 100644
|
||||||
|
--- a/lib/lz4frame.c
|
||||||
|
+++ b/lib/lz4frame.c
|
||||||
|
@@ -530,9 +530,16 @@ LZ4F_CDict*
|
||||||
|
LZ4F_createCDict_advanced(LZ4F_CustomMem cmem, const void* dictBuffer, size_t dictSize)
|
||||||
|
{
|
||||||
|
const char* dictStart = (const char*)dictBuffer;
|
||||||
|
- LZ4F_CDict* const cdict = (LZ4F_CDict*)LZ4F_malloc(sizeof(*cdict), cmem);
|
||||||
|
+ LZ4F_CDict* cdict = NULL;
|
||||||
|
+
|
||||||
|
DEBUGLOG(4, "LZ4F_createCDict_advanced");
|
||||||
|
- if (!cdict) return NULL;
|
||||||
|
+
|
||||||
|
+ if (!dictStart)
|
||||||
|
+ return NULL;
|
||||||
|
+ cdict = (LZ4F_CDict*)LZ4F_malloc(sizeof(*cdict), cmem);
|
||||||
|
+ if (!cdict)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
cdict->cmem = cmem;
|
||||||
|
if (dictSize > 64 KB) {
|
||||||
|
dictStart += dictSize - 64 KB;
|
||||||
|
@@ -1429,6 +1436,10 @@ LZ4F_errorCode_t LZ4F_getFrameInfo(LZ4F_dctx* dctx,
|
||||||
|
LZ4F_frameInfo_t* frameInfoPtr,
|
||||||
|
const void* srcBuffer, size_t* srcSizePtr)
|
||||||
|
{
|
||||||
|
+ assert(dctx != NULL);
|
||||||
|
+ RETURN_ERROR_IF(frameInfoPtr == NULL, parameter_null);
|
||||||
|
+ RETURN_ERROR_IF(srcSizePtr == NULL, parameter_null);
|
||||||
|
+
|
||||||
|
LZ4F_STATIC_ASSERT(dstage_getFrameHeader < dstage_storeFrameHeader);
|
||||||
|
if (dctx->dStage > dstage_storeFrameHeader) {
|
||||||
|
/* frameInfo already decoded */
|
||||||
|
diff --git a/tests/frametest.c b/tests/frametest.c
|
||||||
|
index de0fe643..90247547 100644
|
||||||
|
--- a/tests/frametest.c
|
||||||
|
+++ b/tests/frametest.c
|
||||||
|
@@ -589,10 +589,13 @@ int basicTests(U32 seed, double compressibility)
|
||||||
|
size_t const srcSize = 65 KB; /* must be > 64 KB to avoid short-size optimizations */
|
||||||
|
size_t const dstCapacity = LZ4F_compressFrameBound(srcSize, NULL);
|
||||||
|
size_t cSizeNoDict, cSizeWithDict;
|
||||||
|
- LZ4F_CDict* const cdict = LZ4F_createCDict(CNBuffer, dictSize);
|
||||||
|
- if (cdict == NULL) goto _output_error;
|
||||||
|
- CHECK( LZ4F_createCompressionContext(&cctx, LZ4F_VERSION) );
|
||||||
|
+ LZ4F_CDict* cdict = NULL;
|
||||||
|
|
||||||
|
+ CHECK( LZ4F_createCompressionContext(&cctx, LZ4F_VERSION) );
|
||||||
|
+ cdict = LZ4F_createCDict(CNBuffer, dictSize);
|
||||||
|
+ if (cdict == NULL)
|
||||||
|
+ goto _output_error;
|
||||||
|
+
|
||||||
|
DISPLAYLEVEL(3, "Testing LZ4F_createCDict_advanced : ");
|
||||||
|
{ LZ4F_CDict* const cda = LZ4F_createCDict_advanced(lz4f_cmem_test, CNBuffer, dictSize);
|
||||||
|
if (cda == NULL) goto _output_error;
|
||||||
@@ -12,7 +12,9 @@ PE = "1"
|
|||||||
|
|
||||||
SRCREV = "5ff839680134437dbf4678f3d0c7b371d84f4964"
|
SRCREV = "5ff839680134437dbf4678f3d0c7b371d84f4964"
|
||||||
|
|
||||||
SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https"
|
SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \
|
||||||
|
file://CVE-2025-62813.patch \
|
||||||
|
"
|
||||||
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
|
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|||||||
Reference in New Issue
Block a user