Just a couple months ago, a hoax started circulating as a meme, stating that, if users set their time to January 1, 1970, a retro boot logo would appear as an Easter egg.

People did this and ended up bricking their phones.

Skip forward to the release of iOS 9.3, which, as part of the update description, states that it fixed a bug where manually setting the time before May 1970 would brick it.

Software update description

This is quite odd, as...

  • To my understanding, iOS is a derivative of Mac OS X, and that's based off of UNIX
  • NSDate's reference date is January 1, 2001 (Reference)
  • NSDate allows for dates to be created as an interval from 1970 so it can retain compatibility with BSD's time_t type (Reference: Discussion section of this method)
  • iOS didn't change its entire backing system. Otherwise, nothing would work and it'd be an entirely different platform.
  • The security page for iOS 9.3 says nothing about this issue that I found.

How did Apple silently fix this issue? Did they change date calculations on boot? Why, before May 1970, would those months specifically cause an issue? Why May?

They didn't change how time was stored. Otherwise, the NSDate type in iOS 9.3 would work completely differently.

  • 2
    Likely a better question for SuperUser or Stack Overflow as this isn't directly a security issue as much as it is a bug.
    – Brad Metcalf
    Mar 23 '16 at 6:01
  • 2
    @BradMetcalf Would it be off topic for both of those sites, since SuperUser is about questions for a power user and StackOverflow is meant for programming?
    Mar 23 '16 at 6:03
  • 1
    Afaik, the bug had something to do with the 32/64 bit change and a problem with apples implementation of storing the dates; however, your assumption that NSDate would work differently when the storage changed is false. One can easily change implementations and yield the same behavior, especially when only the storage changes.
    – SmokeDispenser
    Mar 23 '16 at 7:37
  • 1
    Not sure this shouldn't be off topic because "how did Apple silently fix this issue?" is something only Apple engineers know and they are not allowed to talk. So any answer would be purely speculation, even if you are a programmer responsible for such issues on unix-like systems. Mar 23 '16 at 16:14
  • 1
    It looks like you've been passed around a bit! Sorry to be the bearer of bad news, but we consider un-answerable questions off-topic here. Unless Apple comes out and says what they did, we're just going to be basing everything off of opinions. Someone could figure it out by looking at the code, but it's likely nobody is going to do that since they wouldn't really be able to publish their findings because of copyright laws and whatnot. Mar 23 '16 at 17:07

Browse other questions tagged .