mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
libpng16: CVE-2015-0973
Fixes CVE-2015-0973 (duplicate of CVE-2014-9495), a heap-based overflow
vulnerability in the png_combine_row() function of the libpng library,
when very large interlaced images were used.
Upstream patch:
dc294204b6/
External Reference:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0973
http://seclists.org/oss-sec/2014/q4/1133
(From OE-Core rev: 10c8aeebca301ffd853e75df3f9c1d16d0352d76)
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Maxin B. John <maxin.john@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
13eda67126
commit
cafdccb29c
@@ -0,0 +1,47 @@
|
||||
libpng16: Fixed an overflow in png_combine_row with very wide interlaced
|
||||
|
||||
Fixes CVE-2015-0973 (duplicate of CVE-2014-9495), a heap-based overflow
|
||||
vulnerability in the png_combine_row() function of the libpng library,
|
||||
when very large interlaced images were used.
|
||||
|
||||
Upstream patch:
|
||||
http://sourceforge.net/p/libpng/code/ci/dc294204b641373bc6eb603075a8b98f51a75dd8/
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
|
||||
---
|
||||
diff --git a/pngrutil.c b/pngrutil.c
|
||||
index e9fdd62..4c26be4 100644
|
||||
--- a/pngrutil.c
|
||||
+++ b/pngrutil.c
|
||||
@@ -3003,7 +3003,7 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display)
|
||||
{
|
||||
unsigned int pixel_depth = png_ptr->transformed_pixel_depth;
|
||||
png_const_bytep sp = png_ptr->row_buf + 1;
|
||||
- png_uint_32 row_width = png_ptr->width;
|
||||
+ png_alloc_size_t row_width = png_ptr->width;
|
||||
unsigned int pass = png_ptr->pass;
|
||||
png_bytep end_ptr = 0;
|
||||
png_byte end_byte = 0;
|
||||
@@ -3278,7 +3278,7 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display)
|
||||
|
||||
/* But don't allow this number to exceed the actual row width. */
|
||||
if (bytes_to_copy > row_width)
|
||||
- bytes_to_copy = row_width;
|
||||
+ bytes_to_copy = (unsigned int)/*SAFE*/row_width;
|
||||
}
|
||||
|
||||
else /* normal row; Adam7 only ever gives us one pixel to copy. */
|
||||
@@ -3458,7 +3458,7 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display)
|
||||
dp += bytes_to_jump;
|
||||
row_width -= bytes_to_jump;
|
||||
if (bytes_to_copy > row_width)
|
||||
- bytes_to_copy = row_width;
|
||||
+ bytes_to_copy = (unsigned int)/*SAFE*/row_width;
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -10,6 +10,7 @@ LIBV = "16"
|
||||
|
||||
SRC_URI = "${SOURCEFORGE_MIRROR}/project/libpng/libpng${LIBV}/${PV}/libpng-${PV}.tar.xz \
|
||||
file://0001-configure-lower-automake-requirement.patch \
|
||||
file://libpng16-CVE-2015-0973.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "51ce71a1642cdde1f4485a7ff82193c0"
|
||||
|
||||
Reference in New Issue
Block a user