Bug 1191338 - libc: y2038 bug in 32-bit
Summary: libc: y2038 bug in 32-bit
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Basesystem (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Andreas Schwab
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-05 14:34 UTC by Richard Palethorpe
Modified: 2023-03-09 16:04 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Richard Palethorpe 2021-10-05 14:34:44 UTC
Because the kernel has started moving to y2038 safe time values it is causing some regressions in tests e.g.

https://openqa.opensuse.org/tests/1952348#step/cve-2021-26708/8

Because in 32-bit compat mode it is passing time values which are too small. In theory this is a kernel regression. However practically speaking it is more important to only use 64-bit time values in user land. Indeed the plan is to disable 32-bit time values in the 2030s (https://lwn.net/Articles/643407/).

AFAICT the solution is to set __TIMESIZE == 64 when building glibc.

https://www.gnu.org/software/libc/manual/html_node/64_002dbit-time-symbol-handling.html

Then time values become 64-bit even in 32-bit mode. This change will require all 32bit packages which link against libc to be recompiled.
Comment 1 Jiri Slaby 2023-01-25 09:04:28 UTC
This is something for glibc then. Maybe it was already fixed?
Comment 2 Andreas Schwab 2023-01-25 09:37:05 UTC
The correct solution is to compile with _TIME_BITS=64.  No need to break the ABI.