(This is probably going to be boring. Skip to the “My Analysis” section for something short.)
Yesterday I was working on my new site when I discovered that Mozilla 1.6 alpha wouldn’t publish it properly. I tried to downgrade to Mozilla 1.5, but it would go pause on startup, remaining alive but using 0% CPU. I decided to reboot.
When Windows XP started up, I got an error that shlwapi.dll could not be found, and hence winlogon.exe (the program that logs you into your computer) could not run. Huh? Where did it go?
Well, it was gone and I needed to get it back. I booted into Knoppix (a Debian-based Linux distribution on a CD) and checked out my directories. shlwapi.dll had ceased to exist. I made a friend send me her copy of it. Then I did something pretty stupid:
I enabled experimental NTFS write support on my Windows XP partition.
The attempt at copying shlwapi.dll back failed with some system error, and Knoppix refused to show my c:windowssystem32 directory from that point forward. Ooops, just a little filesystem corruption.
I used an old, burned copy of Windows XP to attempt to get to the recovery console, but lo and behold it wouldn’t accept my Administrator password. Huh? ntpasswd did the trick, resetting the Administrator password.
After some fiddling and following of the directions on some forum, I was able to get my system to start up and permit me to login. But Windows then refused to give me a start menu because it was missing shdocvw.dll. Huh? Looks like I wasn’t having a problem anyone had diagnosed before! I copied the file over from an XP cd, but Internet Explorer still wasn’t working!
I threw up my hands and did an in-place reinstall of XP. An hour later I was presented with an activation dialog, which refused to work over the Columbia ethernet because XP seemed to think I needed to dial up to my ISP. I called ‘em up and all went smoothly. Norton Antivirus popped up a dialog box saying that the Welchia worm had been detected. I quickly installed a few patches to keep my computer from being infected.
Mozilla still refused to work, so I created a new profile and copied the necessary files from my old one. I should not have had to do that. At least it’s working now.
My analysis:
Microsoft has released software with tons of security holes. They’re doing the right thing by patching them, but these patches may have little conflicts that can cause big problems. Especially with computer users like myself, who like to install things but reboot later. Somehow or another, some rather important Windows system files were deleted rather than updated.
The solution: more review of code, better testing of patches, and an increased focus on getting things right the first fucking time. I should not have to download 2 patches per week. How come the average Linux box can get by with so many fewer patches, when it has to focus on remote and local holes? Sigh.
(As for Mozilla crapping itself: at least I had the know-how to fix it. I was using an Alpha version, so if it happened because of that, I have only myself to blame.)