NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/48449: y2038 shortcomings of ffsv1
>Number: 48449
>Category: kern
>Synopsis: y2038 shortcomings of ffsv1
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Dec 15 07:25:00 +0000 2013
>Originator: David A. Holland
>Release: NetBSD 6.99.28 (20131214)
>Organization:
>Environment:
n/a
>Description:
ffsv1 stores 32-bit times on disk. This is not fixable (solution is to
use ffsv2) but we ought to have a scheme in place where the 32-bit
times that are read and written are interpreted as current.
>How-To-Repeat:
Make an ffsv1 volume, set the date to 2040 and create some files. See
PR 48437 for an example seen in practice.
>Fix:
When 32-bit times are read in, instead of just sign-extending them as
currently appears to happen, paste on the top half of the current
64-bit time and then possibly adjust up or down by 0x100000000. There
are then several possible ways to pick the adjustment; one can match
on bits 30/31 of both times, or pick the version that's nearest the
current time; or assume that since file timestamps are rarely in the
future any time that would be more than a month or so in the future
should be interpreted in the past instead.
(This is basically the same as the y2k problem of deciding how to
interpret 2-digit years based on the current year, and I think a
standard scheme was eventually chosen for that but I forget what it
is; it should probably be replicated in binary for y2038.)
Home |
Main Index |
Thread Index |
Old Index