From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on2125.outbound.protection.outlook.com [40.107.215.125]) by sourceware.org (Postfix) with ESMTPS id 86A0F3858C39 for ; Fri, 4 Nov 2022 01:39:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 86A0F3858C39 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=cipunited.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cipunited.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=btm6AQO5y/uW0miB+FSC1WF2VSqWM1HTo7rVgN62DaH+iuglKEKWh7BVkQXDMrpHkE82bgpe4hqRXOZFzYkWAlGrLArHaJcjkbMjAj/uwprtc02T4KOSInvHSBkophg151nk3B6SvKe/+cZzNCdSQmnI9OF8TI/0J0Q6Kn3dI3lqFZzr1d2e38x9NTUqvK0iQf7NW9zdrR0JFUzreZ9+A2wNMFdy8xI/apT9AR0nB7gscNKDwDSwooRdNqOkPs50eXRevAKfimISxbV7UYKf435GF2x/NRwevKuDDV2y4JalpocICMmRmN35WK+NFO14Tib7xvn4vJm7eO5w4/z4Sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9M/TibMgfGysXqfd77+dwFE/U6W+EMzT2iNknoqqmAg=; b=GhTuw2COpXXMOFFBptXiFh9Ly6r0bQFc2nXcaTdlGHT5LNBpZQFLdd1z4/0P/v+DMD96pRQrjupnfiqDVQWyMXIpXXGHO+B/yI0tammOcuQJp6VLbPtS05nZDl1doc3Yj3TKHfyccMfXpiT+bIsB7xAy9ncpQH4IcLLTqNSilCwHhI43a0G0QBqGBzh5XF9SFROAZ05+oJ/DIYQHlqrWa1xEIey5EgajuRatM0suJ41xlQiMFkx3oHsrN+tEdWUY338a4de33DAemkA27EkDCNLEfnz9ZpfxB/zIiDwXnTsLcOt+g0gWF4DMqna4lGeG7kMmYsh7+nR7vyNgQNupkw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cipunited.com; dmarc=pass action=none header.from=cipunited.com; dkim=pass header.d=cipunited.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cipunited.onmicrosoft.com; s=selector1-cipunited-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9M/TibMgfGysXqfd77+dwFE/U6W+EMzT2iNknoqqmAg=; b=A+Q1HFae+hwB/Qq4yF2vMfKKInelwTwXh8SXj3xKT6zEIO9uq12EA/QyWZHT5KI/orp/38J7FnIY7CHS0yMQtH7r6377W2CWYc9mI4GBUP/bESC3tWljw/ZgXZBPeGDsSVLcs+QYmR+TnnAWwh5jeD1HZpk1Sj2HApplnhE2lJU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cipunited.com; Received: from TYZPR04MB6117.apcprd04.prod.outlook.com (2603:1096:400:25a::9) by SEZPR04MB5804.apcprd04.prod.outlook.com (2603:1096:101:7b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Fri, 4 Nov 2022 01:39:44 +0000 Received: from TYZPR04MB6117.apcprd04.prod.outlook.com ([fe80::8f19:4247:369b:b64f]) by TYZPR04MB6117.apcprd04.prod.outlook.com ([fe80::8f19:4247:369b:b64f%8]) with mapi id 15.20.5791.022; Fri, 4 Nov 2022 01:39:43 +0000 From: YunQiang Su To: libc-alpha@sourceware.org Cc: aurelien@aurel32.net, adhemerval.zanella@linaro.org, jiaxun.yang@flygoat.com, macro@orcam.me.uk, syq@debian.org, YunQiang Su Subject: [PATCH] Use in_int32_t_range to check need 64bit syscall Date: Fri, 4 Nov 2022 09:39:13 +0800 Message-Id: <20221104013913.1543593-1-yunqiang.su@cipunited.com> X-Mailer: git-send-email 2.30.2 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: TY2PR0101CA0023.apcprd01.prod.exchangelabs.com (2603:1096:404:92::35) To TYZPR04MB6117.apcprd04.prod.outlook.com (2603:1096:400:25a::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR04MB6117:EE_|SEZPR04MB5804:EE_ X-MS-Office365-Filtering-Correlation-Id: 19d7a108-344c-4537-46d8-08dabe0572bd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: a8rN7PotEXotZ2nRSUnnlC81B90cOFPCLyPN3zqveUrI/JN2mUycGb8MDyw152aomTeBUMUtYWJrUS7NisIc7/A7LZ+hA4+3SdLfnhlFrYyrfYNf9DkiI8xd6jzPwh3OFWgqpG4XsJVf3rEXSwBMkN/3/FLFEJpc1tbxq5KLlXEMyJ/pz9wvsih/GY7mByAITx5cnp/0Fv0VClm/9eqKeyzDIOyUpghpbID8kUcWIJUJawsZN7LC4cO7UIGha5xk17GcibaBhWaHy6xzb0yDJcqI2Wa6LG2WP9epSSP+T+DoqFH/DcWqhkqaAnugWGVCPiFGeXC1pOITfA6WHIePVsSFQhE4tr8VPmBPORdfwc7j9b1u5B8iWO4CK5JsxLJPdFbhcf9uD4NSkB3BUIyCtg1qyTQPDk/AMIHXXTVp4ay/kqyANiuAJ09CS3L+auJtZkvYZkWClV7GJpR4sKrA+Gj6qu/OGbhCQ/iaQYQoFQxAuUtx3Wk2JuNV9rMiS6uEdf2S0X4zw21tVUtMFplbEQkvwwupAx0IvGa7HHvJFx3rkw6avTNLqicgqn60u58E9bbu7p94pceYybXvvYPk8L7ICflZtRE3BcI7VgOyrsNa4NyCPkQTH1fUoLqwpnKzNr1wwSPiSc08WDy/rvCUDr8ERf80hIL7D43MNNXj5lyOMX2Rjbhxgg72RT1vHDXhCq+RZEsAygTVxQOnagid+ZgQsCnXQGzdUnmncgsDG7MWUzist1jPVt36vAkRVkvAU/WBQ/56xvgFfhml3BaZbj4lH4yhA+poPHwppctemgY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR04MB6117.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39830400003)(346002)(366004)(376002)(136003)(396003)(451199015)(478600001)(6506007)(38350700002)(6486002)(38100700002)(52116002)(66946007)(4326008)(36756003)(8676002)(26005)(66556008)(43170500006)(66476007)(2906002)(83380400001)(186003)(1076003)(86362001)(41300700001)(8936002)(30864003)(6666004)(6512007)(107886003)(5660300002)(2616005)(6916009)(316002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?v8rGEmkJPVsmbUhaMecXGKoCYvSIPUDONra+B7hQahdm9sMFXhYucTHAm/pG?= =?us-ascii?Q?X0nefVTwfnseFHh8Tw2klvcFUfIcTyd1tKwhPcB1GDWfRQjOcNBij6hl7oLF?= =?us-ascii?Q?wp0XTVUjxcZd5YIe/v8nDCglsmqMIz6PkepiCK4OnYfCICcxa9IuMdgYNlTy?= =?us-ascii?Q?pKebtrUlADIVub0e+1yXLOobxLamAs8bjkG7793jN2fX1zrfOhT26bfeArbL?= =?us-ascii?Q?ZUMVc29hHWcXkW02yj2o8iX2HNbYplJMrA+qYRO0gbNknnjIdRj9TzFhy59q?= =?us-ascii?Q?vpxIK2Uwo/YynuyoIhYFC8aMp7QMyv4FrfJlQbZ5X6ngJII4Log37pI96Zhq?= =?us-ascii?Q?cLKHPXNciPz8+eeVkhmLXnKfzSffkbMNeDWkKWgsMhaaDJDfuZPZVc6oDUs2?= =?us-ascii?Q?RzjgzUV2s5XY1aVfNzZxTWB76wskd6h0+xLmPK2LpItoCuotVH+8tkX9CrWM?= =?us-ascii?Q?bEQ0Vv9ZCIKbbv4xMm9suuP24IfkdQ8cSMSnyI9AF1fyXu2gdnOswnbPf1qD?= =?us-ascii?Q?aPuHgvvXjyvlnprvhMkSphLswYJ/3b4Km41YZ0nnsuAa1em2OFK2kA/nfXQ6?= =?us-ascii?Q?4Rk5QLwtirhUqMJJjjKmirACRrRtpxWB8WLVz6lAR3icS6ZbFZSRhCgqOtV3?= =?us-ascii?Q?FRMFRHrcCkZ5PRgOO2PKwdvPjLvtaFFmMOf3D33PU156n8tOezmbyp1LYGgM?= =?us-ascii?Q?hhPtvj3dPMJjW6fec/d8Vpp9BggHc36A4wfWKfKjS6qdAi36CEYyNAPmMAoh?= =?us-ascii?Q?BNoSbONCp/d/5uRGsann/5unb/B1FEzwU1ueydIiirk/UrL9TSTcLZokEvLY?= =?us-ascii?Q?6h31r9wprN9AM04siyjC0l6vg84fSa0eh4DbeG6ZqW4cxleYOjvNLvragtUU?= =?us-ascii?Q?8XF6Ia18EUgJtIQ60rCuXLIXIaCZWXxAJfgh2WhYqo+3uWHbSpFqqsiwPco4?= =?us-ascii?Q?DX0rSSoQrlINXnXpFZMGwy0IykTnrLvV6LJ8terCv31yepqmyUrvcN6vuRi5?= =?us-ascii?Q?bTXX9T6a+yRKLaQbxQgvOeLrhpIRuhTjAQnZrk/QEkdSpDOsEmYMER2PUHBJ?= =?us-ascii?Q?2PJvr8jGVws0Q56onaBPXme3gGQWPw9LqdusibVHiUR7UsKKrjbU+Xvj6CpK?= =?us-ascii?Q?o1xkx9hn9OcoPVyH6R0rgT+Kx4VRrFlQSY9f3O2PsHfb/pzDGOswbeZvYhEQ?= =?us-ascii?Q?tUgy/YD4f9S6N3wXNB/00Xukf1K+EIH2QOfwbMhlG+/9RrWOPgx5tgVQZzKm?= =?us-ascii?Q?4Y4XwF19yjKSEaSgprKIfR6xJa3IipEppDSqSFdYA9NwsBIaFZOcqHph6daL?= =?us-ascii?Q?LAfyrW5zJzkvaA3AqCqOU7RZ2pjnAfdZHx63fHaHrwgXf4A13mbRdzMsrnYJ?= =?us-ascii?Q?k2OgK3BSqP7h3oxKGLcHI7vBLFOhcYTgYKz9zMqvjiRVtz95O7hUKQ4LNYsE?= =?us-ascii?Q?/WAOJrk74D3+fQzfcOt22GsLP/p30K3dCaxL6L0lR3PuDfRwXXfD2hOzdSx6?= =?us-ascii?Q?G3lSEED3BArfZdn3/ZNL+nD2Zjoimgj9Fg8ofsF29IuH0KRGk1x8Oc1C2xel?= =?us-ascii?Q?7R10E7dpBiHE6KffGaxEYfHBYOQE7DSd5tRSSSLC0vgnwjhyQqpl1WaY4Flq?= =?us-ascii?Q?TA=3D=3D?= X-OriginatorOrg: cipunited.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19d7a108-344c-4537-46d8-08dabe0572bd X-MS-Exchange-CrossTenant-AuthSource: TYZPR04MB6117.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2022 01:39:43.7654 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e31cf5b5-ee69-4d5f-9c69-edeeda2458c0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bMhaaHT8a00nOkF/iDg3MZDn6EIVerWCoT4js5fNsqhkKaVcdCd4d+4UBA7KgDd/UfuS7cIYPm4PyoWhF6v4fPmXuQOebHxvU87DB8NJLNc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR04MB5804 X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: The current version, we use in_time_t_range to detect overflow of a time. Whenever overflow we try to use 64bit version syscall. While the function name is quite confused. So let's use a new function called in_int32_t_range to do so. We still keep in_time_t_range, and use it to detect overflow of the return value from syscalls. --- include/time.h | 10 +++++++++- nptl/futex-internal.c | 4 ++-- sysdeps/unix/sysv/linux/clock_adjtime.c | 2 +- sysdeps/unix/sysv/linux/clock_nanosleep.c | 2 +- sysdeps/unix/sysv/linux/clock_settime.c | 2 +- sysdeps/unix/sysv/linux/fstatat64.c | 2 +- sysdeps/unix/sysv/linux/mips/kernel_stat.h | 2 +- sysdeps/unix/sysv/linux/mq_timedreceive.c | 2 +- sysdeps/unix/sysv/linux/mq_timedsend.c | 2 +- sysdeps/unix/sysv/linux/ppoll.c | 2 +- sysdeps/unix/sysv/linux/pselect.c | 2 +- sysdeps/unix/sysv/linux/recvmmsg.c | 2 +- sysdeps/unix/sysv/linux/select.c | 2 +- sysdeps/unix/sysv/linux/semtimedop.c | 2 +- sysdeps/unix/sysv/linux/setitimer.c | 4 ++-- sysdeps/unix/sysv/linux/setsockopt.c | 2 +- sysdeps/unix/sysv/linux/sigtimedwait.c | 2 +- sysdeps/unix/sysv/linux/timer_settime.c | 4 ++-- sysdeps/unix/sysv/linux/timerfd_settime.c | 4 ++-- sysdeps/unix/sysv/linux/utimensat.c | 4 ++-- 20 files changed, 33 insertions(+), 25 deletions(-) diff --git a/include/time.h b/include/time.h index 20abea69d4..f599eeed4e 100644 --- a/include/time.h +++ b/include/time.h @@ -347,12 +347,20 @@ libc_hidden_proto (__time64) /* Check whether T fits in int32_t, assume all usages are for sizeof(time_t) == 32. */ static inline bool -in_time_t_range (__time64_t t) +in_int32_t_range (__time64_t t) { int32_t s = t; return s == t; } +/* Check whether T fits in time_t. */ +static inline bool +in_time_t_range (__time64_t t) +{ + time_t s = t; + return s == t; +} + /* Convert a known valid struct timeval into a struct __timespec64. */ static inline struct __timespec64 valid_timeval_to_timespec64 (const struct timeval tv) diff --git a/nptl/futex-internal.c b/nptl/futex-internal.c index 7ec228e8fb..6b8ac2304d 100644 --- a/nptl/futex-internal.c +++ b/nptl/futex-internal.c @@ -87,7 +87,7 @@ __futex_abstimed_wait_common (unsigned int* futex_word, err = __futex_abstimed_wait_common64 (futex_word, expected, op, abstime, private, cancel); #else - bool need_time64 = abstime != NULL && !in_time_t_range (abstime->tv_sec); + bool need_time64 = abstime != NULL && !in_int32_t_range (abstime->tv_sec); if (need_time64) { err = __futex_abstimed_wait_common64 (futex_word, expected, op, abstime, @@ -162,7 +162,7 @@ __futex_lock_pi64 (int *futex_word, clockid_t clockid, # ifdef __ASSUME_TIME64_SYSCALLS err = INTERNAL_SYSCALL_CALL (futex_time64, futex_word, op_pi, 0, abstime); # else - bool need_time64 = abstime != NULL && !in_time_t_range (abstime->tv_sec); + bool need_time64 = abstime != NULL && !in_int32_t_range (abstime->tv_sec); if (need_time64) err = INTERNAL_SYSCALL_CALL (futex_time64, futex_word, op_pi, 0, abstime); else diff --git a/sysdeps/unix/sysv/linux/clock_adjtime.c b/sysdeps/unix/sysv/linux/clock_adjtime.c index 5ded82f506..63ea68c3af 100644 --- a/sysdeps/unix/sysv/linux/clock_adjtime.c +++ b/sysdeps/unix/sysv/linux/clock_adjtime.c @@ -35,7 +35,7 @@ __clock_adjtime64 (const clockid_t clock_id, struct __timex64 *tx64) return r; if (tx64->modes & ADJ_SETOFFSET - && ! in_time_t_range (tx64->time.tv_sec)) + && ! in_int32_t_range (tx64->time.tv_sec)) { __set_errno (EOVERFLOW); return -1; diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c b/sysdeps/unix/sysv/linux/clock_nanosleep.c index e610fd4e8d..9031060486 100644 --- a/sysdeps/unix/sysv/linux/clock_nanosleep.c +++ b/sysdeps/unix/sysv/linux/clock_nanosleep.c @@ -48,7 +48,7 @@ __clock_nanosleep_time64 (clockid_t clock_id, int flags, r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, clock_id, flags, req, rem); #else - if (!in_time_t_range (req->tv_sec)) + if (!in_int32_t_range (req->tv_sec)) { r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, clock_id, flags, req, rem); diff --git a/sysdeps/unix/sysv/linux/clock_settime.c b/sysdeps/unix/sysv/linux/clock_settime.c index 2a32e2eb13..db9698ba0d 100644 --- a/sysdeps/unix/sysv/linux/clock_settime.c +++ b/sysdeps/unix/sysv/linux/clock_settime.c @@ -41,7 +41,7 @@ __clock_settime64 (clockid_t clock_id, const struct __timespec64 *tp) if (ret == 0 || errno != ENOSYS) return ret; - if (! in_time_t_range (tp->tv_sec)) + if (! in_int32_t_range (tp->tv_sec)) { __set_errno (EOVERFLOW); return -1; diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c index 8b1a1a290d..532b9beb67 100644 --- a/sysdeps/unix/sysv/linux/fstatat64.c +++ b/sysdeps/unix/sysv/linux/fstatat64.c @@ -42,7 +42,7 @@ _Static_assert (sizeof (__blkcnt_t) == sizeof (__blkcnt64_t), #if (__WORDSIZE == 32 \ && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \ - || defined STAT_HAS_TIME32 \ + || defined KERNEL_STAT64_HAS_TIME32 \ || (!defined __NR_newfstatat && !defined __NR_fstatat64) # define FSTATAT_USE_STATX 1 diff --git a/sysdeps/unix/sysv/linux/mips/kernel_stat.h b/sysdeps/unix/sysv/linux/mips/kernel_stat.h index 19524f7ea4..044adfb8df 100644 --- a/sysdeps/unix/sysv/linux/mips/kernel_stat.h +++ b/sysdeps/unix/sysv/linux/mips/kernel_stat.h @@ -69,7 +69,7 @@ struct kernel_stat #endif /* MIPS64 has unsigned 32 bit timestamps fields, so use statx as well. */ #if _MIPS_SIM == _ABI64 -# define STAT_HAS_TIME32 +# define KERNEL_STAT64_HAS_TIME32 #endif #endif diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c index 5bf1e0a83b..6c719d4b70 100644 --- a/sysdeps/unix/sysv/linux/mq_timedreceive.c +++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c @@ -36,7 +36,7 @@ ___mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len msg_prio, abs_timeout); #else bool need_time64 = abs_timeout != NULL - && !in_time_t_range (abs_timeout->tv_sec); + && !in_int32_t_range (abs_timeout->tv_sec); if (need_time64) { int r = SYSCALL_CANCEL (mq_timedreceive_time64, mqdes, msg_ptr, msg_len, diff --git a/sysdeps/unix/sysv/linux/mq_timedsend.c b/sysdeps/unix/sysv/linux/mq_timedsend.c index 3ca5050976..eb8353feef 100644 --- a/sysdeps/unix/sysv/linux/mq_timedsend.c +++ b/sysdeps/unix/sysv/linux/mq_timedsend.c @@ -36,7 +36,7 @@ ___mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len, msg_prio, abs_timeout); #else bool need_time64 = abs_timeout != NULL - && !in_time_t_range (abs_timeout->tv_sec); + && !in_int32_t_range (abs_timeout->tv_sec); if (need_time64) { int r = SYSCALL_CANCEL (mq_timedsend_time64, mqdes, msg_ptr, msg_len, diff --git a/sysdeps/unix/sysv/linux/ppoll.c b/sysdeps/unix/sysv/linux/ppoll.c index 1105e29b00..6653e1bc55 100644 --- a/sysdeps/unix/sysv/linux/ppoll.c +++ b/sysdeps/unix/sysv/linux/ppoll.c @@ -43,7 +43,7 @@ __ppoll64 (struct pollfd *fds, nfds_t nfds, const struct __timespec64 *timeout, __NSIG_BYTES); #else int ret; - bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec); + bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec); if (need_time64) { ret = SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask, diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c index eba1c111f8..23fd0dfad6 100644 --- a/sysdeps/unix/sysv/linux/pselect.c +++ b/sysdeps/unix/sysv/linux/pselect.c @@ -56,7 +56,7 @@ __pselect64 (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, return pselect64_syscall (nfds, readfds, writefds, exceptfds, timeout, sigmask); #else - bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec); + bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec); if (need_time64) { int r = pselect64_syscall (nfds, readfds, writefds, exceptfds, timeout, diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c index d9664d61c4..1ba5a4f25c 100644 --- a/sysdeps/unix/sysv/linux/recvmmsg.c +++ b/sysdeps/unix/sysv/linux/recvmmsg.c @@ -35,7 +35,7 @@ recvmmsg_syscall (int fd, struct mmsghdr *vmessages, unsigned int vlen, struct timespec ts32, *pts32 = NULL; if (timeout != NULL) { - if (! in_time_t_range (timeout->tv_sec)) + if (! in_int32_t_range (timeout->tv_sec)) { __set_errno (EINVAL); return -1; diff --git a/sysdeps/unix/sysv/linux/select.c b/sysdeps/unix/sysv/linux/select.c index a3f0a2eba7..fd147dfdd4 100644 --- a/sysdeps/unix/sysv/linux/select.c +++ b/sysdeps/unix/sysv/linux/select.c @@ -72,7 +72,7 @@ __select64 (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, TIMESPEC_TO_TIMEVAL (timeout, pts64); return r; #else - bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec); + bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec); if (need_time64) { int r = SYSCALL_CANCEL (pselect6_time64, nfds, readfds, writefds, diff --git a/sysdeps/unix/sysv/linux/semtimedop.c b/sysdeps/unix/sysv/linux/semtimedop.c index 38a401bb6f..0cdc0fad4b 100644 --- a/sysdeps/unix/sysv/linux/semtimedop.c +++ b/sysdeps/unix/sysv/linux/semtimedop.c @@ -42,7 +42,7 @@ __semtimedop64 (int semid, struct sembuf *sops, size_t nsops, #ifdef __ASSUME_TIME64_SYSCALLS return semtimedop_syscall (semid, sops, nsops, timeout); #else - bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec); + bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec); if (need_time64) { int r = semtimedop_syscall (semid, sops, nsops, timeout); diff --git a/sysdeps/unix/sysv/linux/setitimer.c b/sysdeps/unix/sysv/linux/setitimer.c index 6d5183aa63..55e6003e0f 100644 --- a/sysdeps/unix/sysv/linux/setitimer.c +++ b/sysdeps/unix/sysv/linux/setitimer.c @@ -32,8 +32,8 @@ __setitimer64 (__itimer_which_t which, #else struct __itimerval32 new_value_32; - if (! in_time_t_range (new_value->it_interval.tv_sec) - || ! in_time_t_range (new_value->it_value.tv_sec)) + if (! in_int32_t_range (new_value->it_interval.tv_sec) + || ! in_int32_t_range (new_value->it_value.tv_sec)) { __set_errno (EOVERFLOW); return -1; diff --git a/sysdeps/unix/sysv/linux/setsockopt.c b/sysdeps/unix/sysv/linux/setsockopt.c index 4292f411f3..6506ca03ab 100644 --- a/sysdeps/unix/sysv/linux/setsockopt.c +++ b/sysdeps/unix/sysv/linux/setsockopt.c @@ -54,7 +54,7 @@ setsockopt32 (int fd, int level, int optname, const void *optval, } struct __timeval64 *tv64 = (struct __timeval64 *) optval; - if (! in_time_t_range (tv64->tv_sec)) + if (! in_int32_t_range (tv64->tv_sec)) { __set_errno (EOVERFLOW); break; diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c index 069fa1d5e4..1993e3f85a 100644 --- a/sysdeps/unix/sysv/linux/sigtimedwait.c +++ b/sysdeps/unix/sysv/linux/sigtimedwait.c @@ -31,7 +31,7 @@ __sigtimedwait64 (const sigset_t *set, siginfo_t *info, result = SYSCALL_CANCEL (rt_sigtimedwait_time64, set, info, timeout, __NSIG_BYTES); #else - bool need_time64 = timeout != NULL && !in_time_t_range (timeout->tv_sec); + bool need_time64 = timeout != NULL && !in_int32_t_range (timeout->tv_sec); if (need_time64) { result = SYSCALL_CANCEL (rt_sigtimedwait_time64, set, info, timeout, diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c index 518fed9c59..056e0aff59 100644 --- a/sysdeps/unix/sysv/linux/timer_settime.c +++ b/sysdeps/unix/sysv/linux/timer_settime.c @@ -46,8 +46,8 @@ ___timer_settime64 (timer_t timerid, int flags, # endif struct itimerspec its32, oits32; - if (! in_time_t_range ((value->it_value).tv_sec) - || ! in_time_t_range ((value->it_interval).tv_sec)) + if (! in_int32_t_range ((value->it_value).tv_sec) + || ! in_int32_t_range ((value->it_interval).tv_sec)) { __set_errno (EOVERFLOW); return -1; diff --git a/sysdeps/unix/sysv/linux/timerfd_settime.c b/sysdeps/unix/sysv/linux/timerfd_settime.c index 59282bf1ad..c5f3f14c3b 100644 --- a/sysdeps/unix/sysv/linux/timerfd_settime.c +++ b/sysdeps/unix/sysv/linux/timerfd_settime.c @@ -33,8 +33,8 @@ __timerfd_settime64 (int fd, int flags, const struct __itimerspec64 *value, #ifdef __ASSUME_TIME64_SYSCALLS return INLINE_SYSCALL_CALL (timerfd_settime64, fd, flags, value, ovalue); #else - bool need_time64 = !in_time_t_range (value->it_value.tv_sec) - || !in_time_t_range (value->it_interval.tv_sec); + bool need_time64 = !in_int32_t_range (value->it_value.tv_sec) + || !in_int32_t_range (value->it_interval.tv_sec); if (need_time64) { int r = INLINE_SYSCALL_CALL (timerfd_settime64, fd, flags, value, diff --git a/sysdeps/unix/sysv/linux/utimensat.c b/sysdeps/unix/sysv/linux/utimensat.c index 5662ecc9aa..54a5e47618 100644 --- a/sysdeps/unix/sysv/linux/utimensat.c +++ b/sysdeps/unix/sysv/linux/utimensat.c @@ -41,9 +41,9 @@ __utimensat64_helper (int fd, const char *file, bool need_time64 = tsp64 != NULL && ((!TS_SPECIAL (tsp64[0]) - && !in_time_t_range (tsp64[0].tv_sec)) + && !in_int32_t_range (tsp64[0].tv_sec)) || (!TS_SPECIAL (tsp64[1]) - && !in_time_t_range (tsp64[1].tv_sec))); + && !in_int32_t_range (tsp64[1].tv_sec))); if (need_time64) { int r = INLINE_SYSCALL_CALL (utimensat_time64, fd, file, &tsp64[0], -- 2.30.2