On 12/31/2008, MS Zune mp3 players froze up globally. No response to any request, even after reset/reboot. It turns out that such a massive disaster is caused by a simple bug in the rtc.c (real-time clock) module. Here below is the buggy code.
#define ORIGINYEAR       1980                  // the begin year
...
...
//------------------------------------------------------------------------------
//
// Function: ConvertDays
//
// Local helper function that split total days since Jan 1, ORIGINYEAR into 
// year, month and day
//
// Parameters:
//
// Returns:
//      Returns TRUE if successful, otherwise returns FALSE.
//
//------------------------------------------------------------------------------
BOOL ConvertDays(UINT32 days, SYSTEMTIME* lpTime)
{
    int dayofweek, month, year;
    UINT8 *month_tab;
    //Calculate current day of the week
    dayofweek = GetDayOfWeek(days);
    year = ORIGINYEAR;
    while (days > 365)
    {
        if (IsLeapYear(year))
        {
            if (days > 366)
            {
                days -= 366;
                year += 1;
            }
        }
        else
        {
            days -= 365;
            year += 1;
        }
    }
    // Determine whether it is a leap year
    month_tab = (UINT8 *)((IsLeapYear(year))? monthtable_leap : monthtable);
    for (month=0; month<12; month++)
    {
        if (days <= month_tab[month])
            break;
        days -= month_tab[month];
    }
    month += 1;
    lpTime->wDay = days;
    lpTime->wDayOfWeek = dayofweek;
    lpTime->wMonth = month;
    lpTime->wYear = year;
    return TRUE;
}
Year 2008 is a leap year, it has 366 days. Whoops! It's stuck (days = 366) in the while loop FOREVER.