153aa9179Sopenharmony_ciFrom 1a6a9d6878ed00265941939adc468a517cd5ef36 Mon Sep 17 00:00:00 2001
253aa9179Sopenharmony_ciFrom: Nick Wellnhofer <wellnhofer@aevum.de>
353aa9179Sopenharmony_ciDate: Tue, 14 Mar 2023 14:19:03 +0100
453aa9179Sopenharmony_ciSubject: [PATCH] xzlib: Fix implicit sign change in xz_open
553aa9179Sopenharmony_ci
653aa9179Sopenharmony_ci
753aa9179Sopenharmony_ciReference:https://github.com/GNOME/libxml2/commit/1a6a9d6878ed00265941939adc468a517cd5ef36
853aa9179Sopenharmony_ciConflict:NA
953aa9179Sopenharmony_ci
1053aa9179Sopenharmony_ci---
1153aa9179Sopenharmony_ci xzlib.c | 7 +++++--
1253aa9179Sopenharmony_ci 1 file changed, 5 insertions(+), 2 deletions(-)
1353aa9179Sopenharmony_ci
1453aa9179Sopenharmony_cidiff --git a/xzlib.c b/xzlib.c
1553aa9179Sopenharmony_ciindex 9a34738..8d75590 100644
1653aa9179Sopenharmony_ci--- a/xzlib.c
1753aa9179Sopenharmony_ci+++ b/xzlib.c
1853aa9179Sopenharmony_ci@@ -139,6 +139,7 @@ static xzFile
1953aa9179Sopenharmony_ci xz_open(const char *path, int fd, const char *mode ATTRIBUTE_UNUSED)
2053aa9179Sopenharmony_ci {
2153aa9179Sopenharmony_ci     xz_statep state;
2253aa9179Sopenharmony_ci+    off_t offset;
2353aa9179Sopenharmony_ci 
2453aa9179Sopenharmony_ci     /* allocate xzFile structure to return */
2553aa9179Sopenharmony_ci     state = xmlMalloc(sizeof(xz_state));
2653aa9179Sopenharmony_ci@@ -173,9 +174,11 @@ xz_open(const char *path, int fd, const char *mode ATTRIBUTE_UNUSED)
2753aa9179Sopenharmony_ci     }
2853aa9179Sopenharmony_ci 
2953aa9179Sopenharmony_ci     /* save the current position for rewinding (only if reading) */
3053aa9179Sopenharmony_ci-    state->start = lseek(state->fd, 0, SEEK_CUR);
3153aa9179Sopenharmony_ci-    if (state->start == (uint64_t) - 1)
3253aa9179Sopenharmony_ci+    offset = lseek(state->fd, 0, SEEK_CUR);
3353aa9179Sopenharmony_ci+    if (offset == -1)
3453aa9179Sopenharmony_ci         state->start = 0;
3553aa9179Sopenharmony_ci+    else
3653aa9179Sopenharmony_ci+        state->start = offset;
3753aa9179Sopenharmony_ci 
3853aa9179Sopenharmony_ci     /* initialize stream */
3953aa9179Sopenharmony_ci     xz_reset(state);
4053aa9179Sopenharmony_ci-- 
4153aa9179Sopenharmony_ci2.27.0
4253aa9179Sopenharmony_ci
43