Your security, networking, programming, and application news source.
Google

Friday, January 2, 2009

Zune Bug Source Code

A bug in 30GB Zunes caused them to freeze on December 31st became the <big news of the holidays> (Gizmodo Dec 31 2008). This was dubbed the 'Z2K9' bug while Zune users flooded <Zune support forums> with pleas for help.

It was quickly realized that by disconnecting both the battery and the hard drive that the time/date would be reset unfreezing your Zune. Microsoft's response to the bug was that it is a leap year handling bug and their official fix was to wait until New Years, for the bug to resolve it's self.

Source code of the bug has apparently been been released. A hardware component manufacturer, <Freescale Semiconductor, Inc.>, is apparently the manufacturer of the <RTC (Real Time Clock)> used in these Zunes. Source code for the Freescale RTC driver module has turned up online. This code has an obvious bug related to line #263, in the 'ConvertDays' function.

Multiple source code mirrors for rtc.c:

http://paste.exstatica.net/7 - (Line #'s + Highlighting)

http://pastie.org/349916 - (Line #'s)

http://tinypaste.com/pre.php?id=53c3996 - (Neither)

The problem appears to be with the date December 31st, on leap year, being day 366. You can see on line #263, an if statement testing 'days > 366' inside a while loop testing 'days > 365'. It seems apparent that if days was 366 this would be and endless loop, at least until the next day.

Update: <The official Zune workaround instructions>

No comments:

Post a Comment