Forums › Life › Computers, Gadgets & Technology › iOS 9 date bug: iPhones could be forced to break by connecting to any Wi-Fi network
hardly surprised the feds found it easy to hack that Iphone with code as poor as this.
1970-01-01 on all Unix based computers (including Linux/IOS/Android) is used as the “start of time” with index 0 – but for a variety of complex reasons (added to which humans understandably prefer to use their local civil time for in their country) the time number must be processed via various Maths to output a useful local time.
two basic but fundamental things about coding for Unix and C are that like any other computer system dividing by zero usually causes bad things to happen (most code should not compile if it is detected and many CPUs or OS will crash with an exception).
A “naked zero” can also cause angst especially in C – not because it is sinful but its “nakedness” means a compiler often does not know what type it should be. unless cast to a defined type (I got caught out by this at the weekend when writing Arduino code for a thermal printer)
It could be any of
uint8_t (0x00) – 1 octet
unit16_t (0x0000) – 2 octets (16bit)
unit32_t (0x00000000) – 4 octets (32bit)
unit64_t (0x0000000000000000) – 8 octets (64bit)
some compilers/architectures also use this zero value to indicate a NULL pointer (which is another bad thing to let into production code – as sooner or later an attempt may be made to write to it; which will usually cause a segfault/protection fault, unless it is kernel software running in the supervisor mode of the CPU where such a flaw would result in some bit of memory (including quite possibly the code that is currently being run!) being overwritten with random values and it is likely the system will crash hard.
Nice post GL and for some reason it made me think of this talk Ken Thompson gave many years ago, “Reflections on Trusting Trust” which I’m sure you’ve already seen many times.
https://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf
0
Voices
1
Reply
Tags
This topic has no tags
Forums › Life › Computers, Gadgets & Technology › iOS 9 date bug: iPhones could be forced to break by connecting to any Wi-Fi network