lib: zlib: Remove offset pointer optimization in inftrees.c
authorChin Liang See <chin.liang.see@intel.com>
Wed, 24 Jun 2020 08:31:08 +0000 (16:31 +0800)
committerTom Rini <trini@konsulko.com>
Fri, 17 Jul 2020 12:51:29 +0000 (08:51 -0400)
commit499b7493e7a4d8c9171ff14accafe5a5b22cf00c
tree154a93e18a9d1e2e77bbe0066ba7166736cc51b7
parentb4d14bc81ad580000277deae5d51e3e3ef09875f
lib: zlib: Remove offset pointer optimization in inftrees.c

This fixes the CVE-2016-9840. Commit imported from [1].

inftrees.c was subtracting an offset from a pointer to an array,
in order to provide a pointer that allowed indexing starting at
the offset. This is not compliant with the C standard, for which
the behavior of a pointer decremented before its allocated memory
is undefined. Per the recommendation of a security audit of the
zlib code by Trail of Bits and TrustInSoft, in support of the
Mozilla Foundation, this tiny optimization was removed, in order
to avoid the possibility of undefined behavior.

[1]: https://github.com/madler/zlib/commit/6a043145ca6e9c55184013841a67b2fef87e44c0

Signed-off-by: Mark Adler <madler@alumni.caltech.edu>
Signed-off-by: Chin Liang See <chin.liang.see@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
lib/zlib/inftrees.c