Все новости от 13 января 1999 г. Первоапрельский баг заставит поломать голову не только дураков
Пользователи Microsoft Windows, не проявившие достаточной предусмотрительности, в 2001 году могут стать жертвами заковыристой первоапрельской шутки.
Баг, о котором сообщил программист из Массачусетса, заставляет некоторые Windows-приложения вести себя так, будто системное время отстает на час от показаний собственных часов операционной системы. Это может привести к смещению расписаний и ошибкам банковских программ, регистрирующих неправильное время финансовых расчетов.
'Если просто перевести часы на час вперед, одни программы заработают правильно, зато другие, наоборот, сильно запутаются',
— Ричард Смит, Phar Lap Software
|
|
«Случай необычен своей массовостью, — комментирует президент компании Phar Lap Software Ричард Смит (Richard Smith), который обнаружил ошибку и опубликовал информацию о ней в специализированном издании NT Bug Track. — Баг может затронуть каждый ПК в Соединенных Штатах — ему подвержено достаточно большое число приложений, хотя и не все».
След ведет к файлу библиотеки
Смит проследил баг до файла DLL, управляющего переходом на летнее время. Тот факт, что 1 апреля 2001 года приходится на воскресенье, сбивает алгоритм, вызывая задержку его срабатывания на неделю. Ошибку можно было бы устранить простой заменой MSVCRT.DLL, но некоторые приложения содержат свои собственные копии библиотеки, и каждое из них должен исправлять поставщик соответствующего ПО. Смит, например, нашел на своем ПК 10 копий злополучного файла. «Проблема в том, что ошибку нельзя исправить самостоятельно, — нужно менять всю программу, — поясняет он. — Причем баг содержится не во всех приложениях, так что если просто перевести часы на час вперед, одни программы заработают правильно, зато другие, наоборот, сильно запутаются».
В Microsoft подтвердили наличие бага, но сказали, что в большинстве случаев его легко устранить. «Девяносто девять процентов прикладных пакетов… легко исправить, просто загрузив новую, исправленную версию DLL», — утверждает менеджер по продуктам отдела Visual C++ корпорации Microsoft Крис Харгартен (Chris Hargarten). По его словам, компания занимается этой проблемой и «работает над планом» ее устранения.
|