]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
misc: Use 64 bit stat for daemon (BZ# 29203)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 31 May 2022 14:46:59 +0000 (11:46 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 1 Jun 2022 16:30:48 +0000 (13:30 -0300)
This is a missing spot initially from 52a5fe70a2c77935.

Checked on i686-linux-gnu.

(cherry picked from commit 3fbc33010c76721d34f676d8efb45bcc54e0d575)

NEWS
misc/daemon.c

diff --git a/NEWS b/NEWS
index b444478935a27201a5a5d46a13865e03c42981eb..46e747a53498b53d8e1bb09baff5a5c3856ecc55 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -101,6 +101,7 @@ The following bugs are resolved with this release:
   [29078] <dlfcn.h> functions unusable during early auditing
   [29097] time: fchmodat does not handle 64 bit time_t for
     AT_SYMLINK_NOFOLLOW
+  [29203] libc: daemon is not y2038 aware
 
 \f
 Version 2.34
index 0e688f4d7482e3359aa39dd6aa639cd882a9fd7f..3c73ac2ab8709812886a8f14702c75bfe93cf5a5 100644 (file)
@@ -61,11 +61,10 @@ daemon (int nochdir, int noclose)
                (void)__chdir("/");
 
        if (!noclose) {
-               struct stat64 st;
+               struct __stat64_t64 st;
 
                if ((fd = __open_nocancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
-                   && (__builtin_expect (__fstat64 (fd, &st), 0)
-                       == 0)) {
+                   && __glibc_likely (__fstat64_time64 (fd, &st) == 0)) {
                        if (__builtin_expect (S_ISCHR (st.st_mode), 1) != 0
 #if defined DEV_NULL_MAJOR && defined DEV_NULL_MINOR
                            && (st.st_rdev