[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Mezzanotte



On Sun, 12 Mar 2006 14:20:08 +0100 Vincenzo Villa wrote:

> Maxx scrisse il giorno 12/03/2006 9.17:
> 
>> la data 'disastrata' è sempre la stessa? 
>> Ed esattamente qual'è? 13 di quale_mese del 1901 ?
>> L'idea era vedere se scritta come Unix epoch ha
>> un pattern particolare.
> 
> Circa la stessa data: in syslog trovo varie date di inizio, comprese
> intorno alle 21:45:50 -> 21:46:10 del 13 dicembre 1901 (l'anno è
> aggiunto a memoria - ma ne sono sicuro - perché nel log non ci sta.
> 
> Sarebbe qualcosa del tipo -2147480040 che in hex fa FFFFFFFF80000E18 (a
> parte gli ultimi tre digit direi che particolare lo è davvero, assieme
> magari a qualche incomprensione tra interi a 32 e 64 bit e overflow vari)
> 
> Comunque il problema era un modulo di aggiornamento della data in
> webmin, lasciato in bianco ed evidentemente non controllato nel codice;
> ora l'ho risolto disattivando il modulo.
> 
> PS, per i superstiziosi: il 13/12/1901 era venerdì...

Prova a far girare il seguente programmino perl, che mostra
cosa potrebbe succedere ai sistemi 32-bit nel famoso 2038...

Tema: 

#!/usr/bin/perl
use POSIX;
$ENV{'TZ'} = "CET";
# maxint a 32 bit : 2147483647
for ($clock = 2147483641; $clock < 2147483651; $clock++)
{
    print ctime($clock);
}

Svolgimento:

Tue Jan 19 04:14:01 2038
Tue Jan 19 04:14:02 2038
Tue Jan 19 04:14:03 2038
Tue Jan 19 04:14:04 2038
Tue Jan 19 04:14:05 2038
Tue Jan 19 04:14:06 2038
Tue Jan 19 04:14:07 2038
Fri Dec 13 21:45:52 1901
Fri Dec 13 21:45:52 1901
Fri Dec 13 21:45:52 1901

Toh guarda, venerdi 13 dicembre 1901!
A questo punto mi sa che per qualche motivo il modulo di webmin 
soffra di un overflow nel contatore della data.
Magari da qualche parte nel codice c'è un bug che alla mezzanotte
incrementa di una quantità troppo grande il contatore data.

Ciao,
Maxx



Reply to: