mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-15 01:21:06 +00:00
login: Check default sizes of structs utmp, utmpx, lastlog
The default <utmp-size.h> is for ports with a 64-bit time_t.
Ports with a 32-bit time_t or with __WORDSIZE_TIME64_COMPAT32=1
need to override it.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit 4d4da5aab9
)
This commit is contained in:
parent
61484011e7
commit
78d9f91da6
@ -44,7 +44,7 @@ subdir-dirs = programs
|
|||||||
vpath %.c programs
|
vpath %.c programs
|
||||||
|
|
||||||
tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname tst-getlogin tst-updwtmpx \
|
tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname tst-getlogin tst-updwtmpx \
|
||||||
tst-pututxline-lockfail tst-pututxline-cache
|
tst-pututxline-lockfail tst-pututxline-cache tst-utmp-size
|
||||||
|
|
||||||
# Empty compatibility library for old binaries.
|
# Empty compatibility library for old binaries.
|
||||||
extra-libs := libutil
|
extra-libs := libutil
|
||||||
|
33
login/tst-utmp-size.c
Normal file
33
login/tst-utmp-size.c
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/* Check expected sizes of struct utmp, struct utmpx, struct lastlog.
|
||||||
|
Copyright (C) 2024 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, see
|
||||||
|
<https://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#include <utmp.h>
|
||||||
|
#include <utmpx.h>
|
||||||
|
#include <utmp-size.h>
|
||||||
|
|
||||||
|
static int
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
_Static_assert (sizeof (struct utmp) == UTMP_SIZE, "struct utmp size");
|
||||||
|
_Static_assert (sizeof (struct utmpx) == UTMP_SIZE, "struct utmpx size");
|
||||||
|
_Static_assert (sizeof (struct lastlog) == LASTLOG_SIZE,
|
||||||
|
"struct lastlog size");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include <support/test-driver.c>
|
3
sysdeps/arc/utmp-size.h
Normal file
3
sysdeps/arc/utmp-size.h
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
/* arc has less padding than other architectures with 64-bit time_t. */
|
||||||
|
#define UTMP_SIZE 392
|
||||||
|
#define LASTLOG_SIZE 296
|
2
sysdeps/arm/utmp-size.h
Normal file
2
sysdeps/arm/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
2
sysdeps/csky/utmp-size.h
Normal file
2
sysdeps/csky/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
23
sysdeps/generic/utmp-size.h
Normal file
23
sysdeps/generic/utmp-size.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Expected sizes of utmp-related structures stored in files. 64-bit version.
|
||||||
|
Copyright (C) 2024 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, see
|
||||||
|
<https://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Expected size, in bytes, of struct utmp and struct utmpx. */
|
||||||
|
#define UTMP_SIZE 400
|
||||||
|
|
||||||
|
/* Expected size, in bytes, of struct lastlog. */
|
||||||
|
#define LASTLOG_SIZE 296
|
2
sysdeps/hppa/utmp-size.h
Normal file
2
sysdeps/hppa/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
3
sysdeps/m68k/utmp-size.h
Normal file
3
sysdeps/m68k/utmp-size.h
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
/* m68k has 2-byte alignment. */
|
||||||
|
#define UTMP_SIZE 382
|
||||||
|
#define LASTLOG_SIZE 292
|
2
sysdeps/microblaze/utmp-size.h
Normal file
2
sysdeps/microblaze/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
2
sysdeps/mips/utmp-size.h
Normal file
2
sysdeps/mips/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
2
sysdeps/nios2/utmp-size.h
Normal file
2
sysdeps/nios2/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
3
sysdeps/or1k/utmp-size.h
Normal file
3
sysdeps/or1k/utmp-size.h
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
/* or1k has less padding than other architectures with 64-bit time_t. */
|
||||||
|
#define UTMP_SIZE 392
|
||||||
|
#define LASTLOG_SIZE 296
|
2
sysdeps/powerpc/utmp-size.h
Normal file
2
sysdeps/powerpc/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
2
sysdeps/riscv/utmp-size.h
Normal file
2
sysdeps/riscv/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
2
sysdeps/sh/utmp-size.h
Normal file
2
sysdeps/sh/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
2
sysdeps/sparc/utmp-size.h
Normal file
2
sysdeps/sparc/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
2
sysdeps/x86/utmp-size.h
Normal file
2
sysdeps/x86/utmp-size.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define UTMP_SIZE 384
|
||||||
|
#define LASTLOG_SIZE 292
|
Loading…
Reference in New Issue
Block a user