W wiadomościach pojawiła się historia o mężczyźnie, którego konto Paypal przypadkowo zostało zasilone kwotą 92 233 720 368 587 8700 $.
Skąd ten numer? Jaki błąd programowy prawdopodobnie spowoduje powstanie tego numeru?
W wiadomościach pojawiła się historia o mężczyźnie, którego konto Paypal przypadkowo zostało zasilone kwotą 92 233 720 368 587 8700 $.
Skąd ten numer? Jaki błąd programowy prawdopodobnie spowoduje powstanie tego numeru?
Odpowiedzi:
Jest to maksymalna wartość długiego (64-bitowego typu całkowego ze znakiem).
z http://msdn.microsoft.com/en-us/library/system.int64.maxvalue.aspx
Wartość tej stałej wynosi 9 223 372,036,854,775,807; to znaczy, szesnastkowy 0x7FFFFFFFFFFFFFFF.
To byłaby maksymalna wartość dla 64-bitowego typu integralnego ze znakiem w dowolnym języku, nie zakładam, że paypal używa .NET, powyższy link do MSDN jest tylko ilustracyjny.
Ten błąd jest prawdopodobnie tylko słabym błędem konwersji (np. Z dziesiętnego lub zmiennoprzecinkowego itp. Na długi, który nie działał poprawnie), co powoduje przepełnienie wartości lub zły kod domyślny dla jakiegoś dziwnego scenariusza, lub może to być test w produkcji przez ich zespół inżynierów / QA poszedł drutem siana. Błąd wycieku pamięci / wskaźnika, lista sposobów spowodowania tego jest naprawdę niezliczona. Mógł to być błąd analizowania deserializujący niektóre informacje, które do nich dotarły, ogromnie liczne sposoby, aby przypadkowo uzyskać nieoczekiwaną lub źle wyrównaną wartość całkowitą.