aboutsummaryrefslogtreecommitdiffstats
path: root/main/libc0.9.32/0011-time-fix-parsing-of-tzdata-files-where-off_t-is-64-b.patch
blob: 63ee369af6913ee4c50bee42ed58416ce28a164f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
From 0be0174259a3a35313fe1a0413630b919f910f5b Mon Sep 17 00:00:00 2001
From: William Pitcock <nenolod@dereferenced.org>
Date: Thu, 28 Apr 2011 03:09:20 -0500
Subject: [PATCH] time: fix parsing of tzdata files where off_t is 64-bit

lseek takes off_t as the offset type, but gcc will normally pass a
32-bit value unless the number is wider than 16 bits.  so we force
gcc to pass the constant as off_t type always by casting the constant
to off_t.

Signed-off-by: William Pitcock <nenolod@dereferenced.org>
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
 libc/misc/time/time.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
index 19d68e1..1b21f9e 100644
--- a/libc/misc/time/time.c
+++ b/libc/misc/time/time.c
@@ -1856,7 +1856,7 @@ ERROR:
 			if (r != TZ_BUFLEN
 			 || strncmp(buf, "TZif", 4) != 0
 			 || (unsigned char)buf[4] < 2
-			 || lseek(fd, -TZ_BUFLEN, SEEK_END) < 0
+			 || lseek(fd, (off_t) -TZ_BUFLEN, SEEK_END) < 0
 			) {
 				goto ERROR;
 			}
-- 
1.7.8