an incompatible pointer type to function uncompress on 32bit targets such as i586 and allow build of the package on the architecture with GCC 14. If the fix is OK, please forward it to Factory too soon so that we can switch the default compiler. Thanks! OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/libpst?expand=0&rev=77
39 lines
2.0 KiB
Diff
39 lines
2.0 KiB
Diff
From 0dfabdc07bf31da628aa3d67138ad44d98583d1f Mon Sep 17 00:00:00 2001
|
|
From: Milan Crha <mcrha@redhat.com>
|
|
Date: Mon, 22 Jan 2024 18:43:05 +0100
|
|
Subject: [PATCH] build: Fix 'incompatible pointer types' warning on i686
|
|
|
|
This fixes a recent Fedora build, which failed on i686 architecture
|
|
with "incompatible pointer types" error:
|
|
|
|
libpst.c: In function 'pst_read_block_size':
|
|
libpst.c:3832:36: error: passing argument 2 of 'uncompress' from incompatible pointer type [-Wincompatible-pointer-types]
|
|
3832 | if (uncompress((Bytef *) *buf, &result_size, (Bytef *) zbuf, size) != Z_OK || result_size != inflated_size) {
|
|
| ^~~~~~~~~~~~
|
|
| |
|
|
| size_t * {aka unsigned int *}
|
|
In file included from libpst.c:9:
|
|
/usr/include/zlib.h:1251:70: note: expected 'long unsigned int *' but argument is of type 'size_t *' {aka 'unsigned int *'}
|
|
1251 | Z_EXTERN int Z_EXPORT uncompress(unsigned char *dest, unsigned long *destLen, const unsigned char *source, unsigned long sourceLen);
|
|
| ~~~~~~~~~~~~~~~^~~~~~~
|
|
|
|
Fixes: commit a9fb0d8c21c781e679e6e93bb24da14b620ce60d
|
|
---
|
|
src/libpst.c | 6 +++---
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/libpst.c b/src/libpst.c
|
|
@@ -3828,9 +3828,9 @@
|
|
return -1;
|
|
}
|
|
*buf = (char *) pst_malloc(inflated_size);
|
|
- size_t result_size = inflated_size;
|
|
- if (uncompress((Bytef *) *buf, &result_size, (Bytef *) zbuf, size) != Z_OK || result_size != inflated_size) {
|
|
- DEBUG_WARN(("Failed to uncompress %i bytes to %i bytes, got %i\n", size, inflated_size, result_size));
|
|
+ uLongf result_size = inflated_size;
|
|
+ if (uncompress((Bytef *) *buf, &result_size, (Bytef *) zbuf, size) != Z_OK || (size_t) result_size != inflated_size) {
|
|
+ DEBUG_WARN(("Failed to uncompress %i bytes to %i bytes, got %i\n", size, inflated_size, (size_t) result_size));
|
|
if (zbuf) free(zbuf);
|
|
DEBUG_RET();
|
|
return -1;
|