Add missing NULL pointer checks in four public API functions

png_set_eXIf_1, png_set_hIST, png_set_shift, and png_set_quantize
accept user-provided pointers but do not validate them for NULL
before dereferencing, unlike peer functions (png_set_iCCP,
png_set_PLTE, png_set_sBIT, png_set_tRNS) which do check.

Passing NULL causes an immediate SIGSEGV.

Fixes pnggroup/libpng#802

This is a cherry-pick of commit 747dd02240d95dc8da1b9fecf0f58569ebbcf5a7
from branch 'libpng18'.

Reviewed-by: Cosmin Truta <ctruta@gmail.com>
Signed-off-by: Cosmin Truta <ctruta@gmail.com>
3 files changed