Fix instances of -Wnull-pointer-arithmetic As of https://reviews.llvm.org/D98798, clang warns on UB from subtraction against a null pointer. This addresses one of the new instances of this warning. Bug: 75276 Change-Id: Iebd43796deae1dccc18ababcff1e75769b518cfb Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/libpng/+/529201 Reviewed-by: Shai Barack <shayba@google.com>
diff --git a/pngpriv.h b/pngpriv.h index 6162be5..8e54442 100644 --- a/pngpriv.h +++ b/pngpriv.h
@@ -540,7 +540,7 @@ /* This implicitly assumes alignment is always to a power of 2. */ #ifdef png_alignof # define png_isaligned(ptr, type)\ - ((((const char*)ptr-(const char*)0) & (png_alignof(type)-1)) == 0) + ((((uintptr_t)ptr) & (png_alignof(type)-1)) == 0) #else # define png_isaligned(ptr, type) 0 #endif
diff --git a/pngrutil.c b/pngrutil.c index 1c8a179..a1d92fe 100644 --- a/pngrutil.c +++ b/pngrutil.c
@@ -4471,11 +4471,11 @@ */ { png_bytep temp = png_ptr->big_row_buf + 32; - int extra = (int)((temp - (png_bytep)0) & 0x0f); + int extra = (int)(((uintptr_t)temp) & 0x0f); png_ptr->row_buf = temp - extra - 1/*filter byte*/; temp = png_ptr->big_prev_row + 32; - extra = (int)((temp - (png_bytep)0) & 0x0f); + extra = (int)(((uintptr_t)temp) & 0x0f); png_ptr->prev_row = temp - extra - 1/*filter byte*/; }