Fix p_secstodate overflow handling (bug 22463)
Florian Weimer
fweimer@redhat.com
Wed Nov 22 09:23:00 GMT 2017
On 11/22/2017 12:00 AM, Paul Eggert wrote:
> On 11/21/2017 02:38 PM, Joseph Myers wrote:
>> Where does it say that?
>
> It's in RFC 4034 section 3.1.5, which says that the time values specify
> a "date and time in the form of a 32-bit unsigned number of seconds
> elapsed since 1 January 1970 00:00:00 UTC, ignoring leap seconds."
> Although section 3.2 says how these time values are represented, it does
> not give license to represent a date and time that is out of the 32-bit
> range. Section 3.1.5 goes on to say that the intent is to use serial
> number arithmetic a la RFC 1982, which boils down to using the low-order
> 32-bits of the full timestamp.
p_secstodate was added with an import from BIND in 1996:
Tue Aug 13 18:26:45 1996 Ulrich Drepper <drepper@cygnus.com>
â¦
(__dn_count_labels, __p_secstodate): New functions.
At this time, the DNSSEC RFCs did not require modulo interpretation of
the signer field. It was truly restricted to 32 bits, as far as I can see:
<https://tools.ietf.org/html/rfc2065>
I think we can change the function to always return NULL (or abort the
process with an error message) and turn it into into a compat symbol. I
very much doubt that there are any users at all because the function
does not implement the current DNSSEC specification. (Anything
DNSSEC-related still left in libresolv is equally useless because the
protocol underwent several incompatible revisions.)
Thanks,
Florian
More information about the Libc-alpha
mailing list