|
@@ -0,0 +1,29 @@
|
|
|
+Subject: The cdf_read_property_info function does not properly validate a stream offset
|
|
|
+ID: CVE-2014-3487
|
|
|
+Author: Christos Zoulas <christos@zoulas.com>
|
|
|
+Date: Mon Jun 9 13:04:37 2014 +0000
|
|
|
+Origin:
|
|
|
+ commit 93e063ee374b6a75729df9e7201fb511e47e259d
|
|
|
+Debian-Author: Holger Levsen <holger@debian.org>
|
|
|
+Comment:
|
|
|
+ made apply cleanly based on [origin]
|
|
|
+Reviewed-By: Christoph Biedl <debian.axhn@manchmal.in-ulm.de>
|
|
|
+Last-Update: 2014-09-07
|
|
|
+
|
|
|
+ Add missing check offset test (Francisco Alonso, Jan Kaluza at RedHat)
|
|
|
+
|
|
|
+--- a/src/cdf.c
|
|
|
++++ b/src/cdf.c
|
|
|
+@@ -802,7 +802,11 @@
|
|
|
+ if (cdf_check_stream_offset(sst, h, e, 0, __LINE__) == -1)
|
|
|
+ goto out;
|
|
|
+ for (i = 0; i < sh.sh_properties; i++) {
|
|
|
+- size_t ofs = CDF_GETUINT32(p, (i << 1) + 1);
|
|
|
++ size_t tail = (i << 1) + 1;
|
|
|
++ if (cdf_check_stream_offset(sst, h, p, tail * sizeof(uint32_t),
|
|
|
++ __LINE__) == -1)
|
|
|
++ goto out;
|
|
|
++ size_t ofs = CDF_GETUINT32(p, tail);
|
|
|
+ q = (const uint8_t *)(const void *)
|
|
|
+ ((const char *)(const void *)p + ofs
|
|
|
+ - 2 * sizeof(uint32_t));
|