From patchwork Thu Jun 5 08:03:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrea Ricchi X-Patchwork-Id: 4119 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 3492B3F1DC for ; Thu, 5 Jun 2025 10:03:44 +0200 (CEST) Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-450d64026basf3212935e9.1 for ; Thu, 05 Jun 2025 01:03:44 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1749110624; cv=pass; d=google.com; s=arc-20240605; b=Xw19Y1VlNKS3UrZXeHHX6eavG44Zjsq6bdWNhPzCOCrlMZvXULEPcEyAjhvQdwT/R/ kbEfyWl+CUVWJElzNR2ExZvF4ubPSz2J3IfcXNtzEcbqaSXetOotTlqkRFiWcnmYzbpj E7IaWKAwbx46JUBu/5fJ7TLgVPxsawqGhE4V4EWxdQiS54WGJ5Fs4sZ2E/+UycRTYATa UnGZRvJ6nVPAy4VN2UcOxHr/Hgmwswdhg5MERmJjaCBbwslQipesSCiKqViX0gzrhITN MuJXgYbq16hQ9apZzeLeAAfA1qBOZHKSTAlOUDqIFCO/3fDbvqrV0uKt4UvxwcEL9PII PcTQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:message-id:date:subject:cc:to :from:dkim-signature; bh=EYxtDC+0rJ9FYDal46BVcUUXygWKUXOC11Fd97C1CLU=; fh=iMGwUhnTPW93aYCsc/gSyPxp2i8Lxpgeo8FJ9BRzDEY=; b=lQldc/wMcYbnb/xaHaMV3kD/AiMyKdUexa0NSo+yrdRmpGEEwVkQE8XZWFOBRsXAZ7 XHCF9rc1n9c7dm5RoDEGup4eFQqFZ8wKXyf8IhFAjUyIO23uCUT17R4BnKimXZ5OEn8u DkI9ubzaH7BgcLDdenDxGARLgUeGC0f+maXd6IEvLoRPqHJSQIXH0J+DqVHUjMz5Gay9 R+tvvgov+cYaqDuhLw3/eIygP6N7X0eKhhzcRk55mFiO6DDaS9uW6AUHPxN/NpjlWolt fOpUE9h04SfI64uwRGlVN30facZl4S60i1TQhTM7rZY7N0zYPltmQdcuLFfsvs/d9Mfy maEg==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=NNxIP5PG; spf=pass (google.com: domain of andrea.ricchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=andrea.ricchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1749110624; x=1749715424; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:message-id:date:subject:cc:to:from :from:to:cc:subject:date:message-id:reply-to; bh=EYxtDC+0rJ9FYDal46BVcUUXygWKUXOC11Fd97C1CLU=; b=aZ7nwJRQWN0pRsdqzG2wN1iBU3KQHH3m+U4ExGBWG06ddEKR3NjnjYY5TQC1xwRF2P PD04PizOK+OipemGGq7ldIPrdhemqs0Wi8v6ic2euCXAb/Nke/a3iI3KWbvQ4Y+X7gzU b40KfTRZ35MN0cf9evgV6OUvQV7rn3oIBJHWc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749110624; x=1749715424; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :message-id:date:subject:cc:to:from:x-beenthere:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=EYxtDC+0rJ9FYDal46BVcUUXygWKUXOC11Fd97C1CLU=; b=bpTC9kDr78hSy5TClCfeCKO/ZPRy9Qc50K0iPBqHCjWJB3MgTB8dl/W7DmNZHibNrB hEj5gKLr02t6qJrb0HURIOI1AojingR6h+QIWL3dFegMEZy7MOFEyE2+vYTbDGPu3Ifh 5a6jxcgJggWMD7GxGN7d1/bD3rSnhDIQvsO9DiJNYnlNHoOx/PulxmTfcmXH/f2ZWQId pOt8sOQezT1euz6pGB6e7xM/OsZgyhqAlI8lcFcCKJQCAPRxKqVEzUf5kRBW4T6fv8T1 /GKa3OUPu+lZrdp5lGKG+rSrfyH9BAC8+SB+x7Wa9li3H0g0Nz7QDvek7UPQwedze/VT b8/g== X-Forwarded-Encrypted: i=2; AJvYcCWF/uI9/1QuDgEG4YIGKQPCvRtwwEgUFVbCKoVhIkIlWCiSEwARgkhErcpVhuplujiK2UayNhyOEDhk0PCu@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0Yzm1+ZidLYDaSa0Grn7ff6kkizQw2COAmBdqbFCkrIIQ08mLERf UJas3qSF5H1k2hDqoS4jxJv8txDqk07nJn6VDzyFfv7n9JslQfI5UiZ7U6gF8dNG13YarA== X-Google-Smtp-Source: AGHT+IH4cYfQA2fwtHoJj2ZmdN+vWh6EGAdjK2qJofxYq8GvK5qKMqOpJv0gWIdhbTJANEaY9/KPdQ== X-Received: by 2002:a05:600c:8b53:b0:450:d386:1afb with SMTP id 5b1f17b1804b1-451f0a77343mr55872185e9.9.1749110623472; Thu, 05 Jun 2025 01:03:43 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h=AZMbMZfjaf924qLHwaq80BOx7VZGH5n9F9ciA3lCgWgYvYQnWA== Received: by 2002:a05:600c:3488:b0:43c:f1c0:1f7f with SMTP id 5b1f17b1804b1-451f835e3bbls3836625e9.2.-pod-prod-03-eu; Thu, 05 Jun 2025 01:03:41 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUTZoMC2N26sFFbg28PLhnLWVBnZMCRiv01iQ++7Im8YaE7gd9I9vf2D2+FVfZJpeOqaUx/b92WK7IkuMFq@amarulasolutions.com X-Received: by 2002:a05:6000:4287:b0:3a4:e844:745d with SMTP id ffacd0b85a97d-3a51d974118mr5001415f8f.56.1749110621126; Thu, 05 Jun 2025 01:03:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749110621; cv=none; d=google.com; s=arc-20240605; b=V0ZWYwYjHgZtFw092rCVFLa4H3lMYSuwAUPhL/p0iD8TB7XdbD/opnZ0/HZAebiCpM ysHek2wkoZUm9RE5TQhxLUknsJhQNw9WbZR2NlQEVoTClYM1OLV9picl7h8XdaAHI/6z WLCvl0G+hgzPNUMNtq1ON+lptAz06Q/zLy4tnZTqi8KnddDEVGL0BLGKHKlfrczGH1CQ R7JHEoxVN/xyt9oAjfp9XLArmwYeZv2R/xZXNSouCsMHnUMkKCMEltHl5zvpwagBfDkx w/gI9Hlccvu+tCmiJrSvnyhYa9vqy55B6h6Szpc377+DSBA/NSgiy59BE6Uo+uC24Gk9 G2Iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=rCJ3GM0LOEnohXcGlT6amYfEMNz9itMZBFqGLnUegyQ=; fh=TNp5BEMUTKhDSH2ThBDFMB3Jzes5uPja4Go4oHgaSSI=; b=GI1+snyxAOwGJhbIbIaUWOr/kC5hZph5oIyDNTuQnLd5t7NFgzyzRMi5zSwt++ODEf 2pUs7Y5ZiU4pth2+u+CHedypHicKzNGKcFw6dZWEuJGFyb9yEsNYX1yk4gnkSKI5jaDE qX9yS7hFd7fSEd15CdSMD7i1T45MU1kYBBCwMZzqMioYLPnU2xCM+4coQNVwYdxRnFpi 81EpxL6mnaqy6gxGMrz3zPW9wtcGJqze2t3Zz45wre2TSbkoeaK+wwn3ADKc6MzZwcqz 6LHkO2PpLUDoLWIs9Dq2LEoFLQno77YevdsCAUF789L8THcoikVAOcbeLAD+SR6xEKVw rpZg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=NNxIP5PG; spf=pass (google.com: domain of andrea.ricchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=andrea.ricchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id ffacd0b85a97d-3a514e1dceesor1222600f8f.2.2025.06.05.01.03.40 for (Google Transport Security); Thu, 05 Jun 2025 01:03:40 -0700 (PDT) Received-SPF: pass (google.com: domain of andrea.ricchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Forwarded-Encrypted: i=1; AJvYcCWYvxLm/1QdtzVg/qEi3LZez4zshfSA2ITV04ro7MX7/ZT4eQ7dV42xXV8ehLhCWZbPFbRiyxXibjukVRKw@amarulasolutions.com X-Gm-Gg: ASbGncuTL41o/MgjlqnG2NLaq5otm0QDaGEdM+ZmX/7vA1O69D1wdoZn+rXGPqxPzrh 1jjW2TqPpEXzImyyUCUJIytuy+FaqyU9H+RoT+G9sKJ/2vCYfhGuTsSxJs2XQo+FW4Q4Q9IG0MS LKOD/SFLRzM9xjjO3t4REloO8urbGS80QQu0eik2nyyr6042H9TSEg5FJGx8SHCdn1dUMn73GcV FGmBXZviuBBizJuFtVBCaeJJDB4rd6DV9J6PSWNSme9wdK/I44EaCm3FwV0vJ8s80dbBc1IwrR4 9jbGToVxbkOxmhfrWvjksx/dYs9Iqpa19B/A3YBrG7yEBoRi2/C+Bu8/FPAXEpdAptztz8SwEXo jW7TXhbfPhAW/fyRKHOlVVQ== X-Received: by 2002:a05:6000:2410:b0:3a5:1c0f:146d with SMTP id ffacd0b85a97d-3a51d958046mr4481224f8f.33.1749110620557; Thu, 05 Jun 2025 01:03:40 -0700 (PDT) Received: from localhost.localdomain ([2001:b07:6474:ebbf:408a:3921:7afa:68c0]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a528ed512bsm1116558f8f.86.2025.06.05.01.03.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 01:03:40 -0700 (PDT) From: Andrea Ricchi To: connman@lists.linux.dev Cc: denkenz@gmail.com, linux-amarula@amarulasolutions.com, michael@amarulasolutions.com, jussi.laakkonen@jolla.com, Andrea Ricchi Subject: [PATCH v4 1/2] Revert "timezone: Fix compare_file comparison in timezone checking" Date: Thu, 5 Jun 2025 10:03:35 +0200 Message-Id: <20250605080336.21824-1-andrea.ricchi@amarulasolutions.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Original-Sender: andrea.ricchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=NNxIP5PG; spf=pass (google.com: domain of andrea.ricchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=andrea.ricchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , This reverts commit f20ccd19a62bd01aa117bfc8e7c388d2a16cde05. `compare_file` is intended to work with symlinks, enabling full and accurate matching between the requested timezone and the zoneinfo database. --- src/timezone.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/timezone.c b/src/timezone.c index fba8b925..89c44895 100644 --- a/src/timezone.c +++ b/src/timezone.c @@ -124,8 +124,8 @@ static int compare_file(void *src_map, struct stat *src_st, DBG("real path %s path name %s", real_path, pathname); - if (real_path && !g_strcmp0(real_path, pathname)) - return 0; + if (real_path && g_strcmp0(real_path, pathname)) + return -1; fd = open(pathname, O_RDONLY | O_CLOEXEC); if (fd < 0) From patchwork Thu Jun 5 08:03:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrea Ricchi X-Patchwork-Id: 4120 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id DAA1A3F238 for ; Thu, 5 Jun 2025 10:03:44 +0200 (CEST) Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-3a52715cadcsf45599f8f.1 for ; Thu, 05 Jun 2025 01:03:44 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1749110624; cv=pass; d=google.com; s=arc-20240605; b=cHFR2dRqQOLG03634F4Dw/ItwR313zKpJF8N5rfzlXQ1PwraxAT04UHrXYyw7P+gCI WoiXuCtiaadUJqAQEiFW56jF2DAaNb3BazW6P5u3JK+JUdXTQ8ZVQ1OLLaCcOSJWHgwM NYLBaa3st/EyfYcwk0p/q/FZguBQX9B6W+7d8Oc/SDYauayJeIEn6pruFydN2BN1jSyi N5LiGYxWS8Hl+nqSA3bWXHBwlR4lWU/dcDxSe0mFIt4AE8/1epo+0hRZANPbbmTCqdIx lTzi3c6ZfGCSrAbj6oD6G9ANYyE3xpnH98HhOT2BdLRq8Sz2uvQL5HNWGoiiHb/Hhlm9 rcUQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=qPz8dZZ0fvDK5IjCxI206HB+7hVLU3nH76A0SMYCMWs=; fh=BHbhwWXTjodP3neozVeOeD0XjPj8DukSnIHJkA11NcQ=; b=d7u9Ii9V5dpiiLNZvMoWlo4Srq6OKqk/xGf0pMUNKZ1jgHTvouirA3MfLQRLv87bwn QcIBhpgLR9F850x1BRvmPzG6e9NyAjAgLVVVMw8U1nOIzAe6xiTAGgYKKIsyf+HymGrf wWB6tgDTq78Drzg5WC3vrGBPPSoFPizWgsrojtHskEBfdeVNMJdyJBsQl2g5F1MzwvQb VtfyZawlSWv0NBjRcIUD+wvXla/Ug5sAbLx4Wd/P+lQH35cpSI3FBOtP9W5EcsYSS24+ DQWhZuCl9UruXDiWBmDye8azIpaV6zsruKzRv8Soh41cVJTca2J8qE7Zra0Qzdu4tqAD +XKw==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=CCTWSNGd; spf=pass (google.com: domain of andrea.ricchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=andrea.ricchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1749110624; x=1749715424; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=qPz8dZZ0fvDK5IjCxI206HB+7hVLU3nH76A0SMYCMWs=; b=JJ85XNTaEEokfE4pEH5NlgbQZhrks7EmruZbir6wXYCGyQ0EAJRneXxG6zFBr+L5KI O84hI1a2SEj1wfNcV+v7Qun6/bUxim5DoXxx2l7rRRmVrelwLybJ/NVpJOccpjitZwkO xGxeMGNrR9DP7dndojbHpBz+fnIUb6IA5NKbw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749110624; x=1749715424; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=qPz8dZZ0fvDK5IjCxI206HB+7hVLU3nH76A0SMYCMWs=; b=JaZQaUJkfc5nlIW3UjO+79zyagkCGCpKVrTHom2SpQ2XdRCGPMSjA5bDz6sArQ8/8e baCYHWH8iX42NDQ9pCT9snsH6zooFg6QLUuPqQwhqazdSYVdz1rp2GDgpHuLjvqSaEsP OyLI0S8R8NWyf9wLIb+xsx7NqzRbpEDJMyGLYGYFYqT1nx6AnA2PT1q13zHSR01V72+E xJN7Kh15aOGlaKE0UIT5p0W/SV2T7/r033wqmDx8O5/LrY6Ip/29vkZiDkQz+yVrQUOS l17r07y352Z2TONjpZn9J23/UH15kTStyIi+T+JpCfMJd/mShZbZMk31p5P4VB4Vb5TD TXJw== X-Forwarded-Encrypted: i=2; AJvYcCU2HlgvWKwjdcDXXlF7NiSAEaipCBanmWWtr2R6Rs4IZbhwcz+kVuxH6vTXlFqiyj+8vjUIEA3yBScrYnpf@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YyXm9Oh+IPPye01RGKVhiDv6EkiXch2QtrHr0VaGknO2ag/S1WV onyImG/sCSDB7naCnQTSpeKicPn6ScvpfEJVUlMLx09uY70bG0J2E46S8XjgFpAOvuP8Lw== X-Google-Smtp-Source: AGHT+IEAxPf6NqlNGApLAhj8gLcQV5neXW5yHyVYzmlJcPI9fdBt0Okj1w18ch/WCePcnjXoZm5zkg== X-Received: by 2002:a05:6000:2005:b0:3a4:f7ae:7801 with SMTP id ffacd0b85a97d-3a51d92d6fdmr1555431f8f.8.1749110624255; Thu, 05 Jun 2025 01:03:44 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h=AZMbMZeKfWj0XD+uPHs0t2/4mYcqKW91Ir3eMZ30COE2LZsu5Q== Received: by 2002:a5d:64ce:0:b0:3a4:ef08:814c with SMTP id ffacd0b85a97d-3a526e86862ls333952f8f.1.-pod-prod-08-eu; Thu, 05 Jun 2025 01:03:42 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUK55SB4Wkd7knL2XaREnoFYICoH3/7kFcBZaO1UQkhvuWjy1kejIEE2j4hSgdh/HRQcBL3eF6tPrwj1fg+@amarulasolutions.com X-Received: by 2002:a05:6000:40e1:b0:3a4:f975:30f7 with SMTP id ffacd0b85a97d-3a51d984af3mr5406513f8f.56.1749110622046; Thu, 05 Jun 2025 01:03:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749110622; cv=none; d=google.com; s=arc-20240605; b=N8hVhVZhRN+yGlJCWivm5Sdn2bloEo5GL3wMGFSGuJEvSdFRdNSybmgBPGyVHw0llf h4K6KBgwQliSKhf0E9njgJPyjnGkJWoU+IM87UJWbx/E5IKdSD464FF2+b0GTN12cCF5 W1jPUza0GUbmvB8kQqp1E7jfX+avy50JbgAC263+49zG2LHV+BAbNzSy/rWi9qx5+lXg 55dYWXr/XjuLvNR5wOcOZ0umSJ3O+pzFPxzbUrXK1LDRPqqIUJCB1b3zZsvZkvbdzwyc /svEWAzKoIrLBP14qVcXBhgwXFJCyYQkP4KQ9jDV4683IRsIDnX6jPdD0osFxfdFqNjd qavA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=P1nlKYK53z4jJ9E2oLLZERcct+EFkRRmg/08L7hvgx0=; fh=gD1v2lO8EVuqkjMNXEhRRMF7tMbaYyIhfJrkC5iODJs=; b=BPurgl7bX+blk+aY+jBpfuewKg0x6A78Z3NSDvxMVDjuMmdaXQDzDF2G4KezFkojlX DlpsMS+2KWjN4hgfO6XH7z22cTsz1BZLv+5WFcOqSItSKQMH8fasDbEBcvLvsN0vwYfk hnriHb5EEUs/whUgnkeW0G6DeQVWEyD+HOnK5Mv11lHg5xzDh6W5DrYej7fynvfFGJC8 onEyQJmPL47eUTXjOlx+B7eUKZV724Qr3CK6YHWSVKBo4W5+HZ5xbXoUS08nQbj41Qy6 9HQC2x+GLN8zZnFv9HmPxtDgdGCqxZDj/tll3H/JbnBiJY8BWJTEd1t6EuQMZFMpK5B9 3Vpg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=CCTWSNGd; spf=pass (google.com: domain of andrea.ricchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=andrea.ricchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id ffacd0b85a97d-3a5141dd03bsor1830040f8f.9.2025.06.05.01.03.41 for (Google Transport Security); Thu, 05 Jun 2025 01:03:42 -0700 (PDT) Received-SPF: pass (google.com: domain of andrea.ricchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Forwarded-Encrypted: i=1; AJvYcCV0EfP5IsoiK/MVcyJeBZC9Zam/SUWctj1I4Vcs1uf/gV6jpjtcEvslpAg/VBS6yasW2emUCPtu62VmgPgR@amarulasolutions.com X-Gm-Gg: ASbGncupD4PBAIw6cDJ7nqW3ry0m9XI17H09rkLTUaWnyhqrZUbOXVlvEXqvILhwb2q lv6mKQOt8TMEYxoUBqY7auJVE6xq4sncQ4SGDFup03vUfsnBWPFs4Svb032DXkNVc/m4I2mde/P VP0yiV+gxCjjXBC9b2HHwAAHaTZh4htxFasBt3aPLFhYmONU30hPFSmKJ5fhN9KxLbFBlu+iYhp U/BCgiWaItV0+pq6e3DxDnmIoCqbr67xzlv59YTVspmNYAWf1QaRq0XMADf8lhybWNof7DvtYZ3 o6+mO6IwLJabT5ozWRH4eCZt9Z0bVj9Egy3Lqb9d5hWedF448LVLmRkmYATkSBVlyDRoS08Ot1J pAO/P874mK26mJ1IEgF8sSg== X-Received: by 2002:a05:6000:290c:b0:3a4:ff01:218a with SMTP id ffacd0b85a97d-3a51d982ebemr4375787f8f.50.1749110621541; Thu, 05 Jun 2025 01:03:41 -0700 (PDT) Received: from localhost.localdomain ([2001:b07:6474:ebbf:408a:3921:7afa:68c0]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a528ed512bsm1116558f8f.86.2025.06.05.01.03.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 01:03:41 -0700 (PDT) From: Andrea Ricchi To: connman@lists.linux.dev Cc: denkenz@gmail.com, linux-amarula@amarulasolutions.com, michael@amarulasolutions.com, jussi.laakkonen@jolla.com, Andrea Ricchi Subject: [PATCH v4 2/2] timezone: Replace Localtime file copy with symbolic link Date: Thu, 5 Jun 2025 10:03:36 +0200 Message-Id: <20250605080336.21824-2-andrea.ricchi@amarulasolutions.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250605080336.21824-1-andrea.ricchi@amarulasolutions.com> References: <20250605080336.21824-1-andrea.ricchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: andrea.ricchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=CCTWSNGd; spf=pass (google.com: domain of andrea.ricchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=andrea.ricchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=pass header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Based on the `man 5 localtime` documentation the `/etc/localtime` file is expected to be a symbolic link, not a standalone regular file. This change replaces `write_file` with `write_symlink`, avoiding unnecessary file I/O and memory mapping. It ensures Localtime accurately reflects the selected timezone without duplicating data. This also fixes `__connman_timezone_lookup()`, which requires Localtime to be a symlink to function correctly. --- src/timezone.c | 50 +++++++++++--------------------------------------- 1 file changed, 11 insertions(+), 39 deletions(-) diff --git a/src/timezone.c b/src/timezone.c index 89c44895..f442bc2a 100644 --- a/src/timezone.c +++ b/src/timezone.c @@ -507,28 +507,18 @@ done: return zone; } -static int write_file(void *src_map, struct stat *src_st, const char *pathname) +static int write_symlink(const char *target, const char *link) { struct stat st; - int fd; - ssize_t written; - DBG("pathname %s", pathname); + DBG("pathname %s", link); - if (lstat(pathname, &st) == 0) { - if (S_ISLNK(st.st_mode)) - unlink(pathname); + if (lstat(link, &st) == 0) { + if (S_ISLNK(st.st_mode) || S_ISREG(st.st_mode)) + unlink(link); } - fd = open(pathname, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0644); - if (fd < 0) - return -EIO; - - written = write(fd, src_map, src_st->st_size); - - close(fd); - - if (written < 0) + if (symlink(target, link) < 0) return -EIO; return 0; @@ -537,35 +527,17 @@ static int write_file(void *src_map, struct stat *src_st, const char *pathname) int __connman_timezone_change(const char *zone) { struct stat st; - char *map, pathname[PATH_MAX]; - int fd, err; + g_autofree char *pathname = NULL; + int err; DBG("zone %s", zone); - snprintf(pathname, PATH_MAX, "%s/%s", USR_SHARE_ZONEINFO, zone); + pathname = g_strdup_printf("%s/%s", USR_SHARE_ZONEINFO, zone); - fd = open(pathname, O_RDONLY | O_CLOEXEC); - if (fd < 0) + if (stat(pathname, &st) < 0 || !S_ISREG(st.st_mode)) return -EINVAL; - if (fstat(fd, &st) < 0) { - close(fd); - return -EIO; - } - - map = mmap(0, st.st_size, PROT_READ, MAP_SHARED, fd, 0); - if (!map || map == MAP_FAILED) { - close(fd); - return -EIO; - } - - err = write_file(map, &st, connman_setting_get_string("Localtime")); - - munmap(map, st.st_size); - - close(fd); - - return err; + return write_symlink(pathname, connman_setting_get_string("Localtime")); } static guint inotify_watch = 0;