| From 293c8b0298e91d20ba51291e2351ab7d110671d0 Mon Sep 17 00:00:00 2001 |
| From: Even Rouault <even.rouault@spatialys.com> |
| Date: Sun, 31 Dec 2017 15:09:41 +0100 |
| Subject: [PATCH] libtiff/tif_print.c: TIFFPrintDirectory(): fix null pointer |
| dereference on corrupted file. Fixes |
| http://bugzilla.maptools.org/show_bug.cgi?id=2770 |
| |
| Upstream-Status: Backport |
| [https://gitlab.com/libtiff/libtiff/commit/c6f41df7b581402dfba3c19a1e3df4454c551a01] |
| |
| CVE: CVE-2017-18013 |
| |
| Signed-off-by: Yi Zhao <yi.zhao@windriver.com> |
| --- |
| libtiff/tif_print.c | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| diff --git a/libtiff/tif_print.c b/libtiff/tif_print.c |
| index 24d4b98..f494cfb 100644 |
| --- a/libtiff/tif_print.c |
| +++ b/libtiff/tif_print.c |
| @@ -667,13 +667,13 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags) |
| #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__)) |
| fprintf(fd, " %3lu: [%8I64u, %8I64u]\n", |
| (unsigned long) s, |
| - (unsigned __int64) td->td_stripoffset[s], |
| - (unsigned __int64) td->td_stripbytecount[s]); |
| + td->td_stripoffset ? (unsigned __int64) td->td_stripoffset[s] : 0, |
| + td->td_stripbytecount ? (unsigned __int64) td->td_stripbytecount[s] : 0); |
| #else |
| fprintf(fd, " %3lu: [%8llu, %8llu]\n", |
| (unsigned long) s, |
| - (unsigned long long) td->td_stripoffset[s], |
| - (unsigned long long) td->td_stripbytecount[s]); |
| + td->td_stripoffset ? (unsigned long long) td->td_stripoffset[s] : 0, |
| + td->td_stripbytecount ? (unsigned long long) td->td_stripbytecount[s] : 0); |
| #endif |
| } |
| } |
| -- |
| 2.7.4 |
| |