Jump to page content

Bug of the moment 2008-02-21


While working on the graphics for the new digital pirate’s parrot t-shirt design, I found that I could no longer right-click in Pidgin, and I wasn’t sure whether Pidgin or Windows was at fault. Curiously, I could continue typing in Pidgin while waiting 20 seconds for the context menu to appear, and it would appear right where the cursor had been; not a bad implementation at all.

I was using my “trusty” Converter tool to do some ASCII to binary conversion for the design, and I found that as soon as I closed it, right-click came back. With Converter running, right-click in Pidgin broke. And for that matter, so did clipboard access across the system, including in Windows Paint:

In order to capture a screenshot with the clipboard down, I arranged for IrfanView to save the image directly to disc. For some reason, opening the image was also frequetly failing, leaving me with just the first 20 rows of pixels or so:

View complete screenshot

I have no idea what this is trying to tell me.

I’ve looked at the code of Converter, and it all checks out (I can’t see anything that uses the clipboard outside of provel library code) and I’ve tried to replicate the problem and I cannot. IrfanView and Paint also fight over the clipboard sometimes, so I don’t know what was going on. Annoying though.


And then there’s this bug:

I was randomly selected by the Adobe Lottery to update Flash, and since doing that, some sites have started displaying a continual loop of these messages until you tick the box to make them go away (the messages, not the illegal operations). The version of Flash I (now) have is current according to the Adobe site, but dates back to 12th March 2007. Well, OK, 3rd December 2007, which is still a while ago.

Hey, where’d NPSWF go? It’s not in C:\Program Files\Mozilla\Firefox\plugins any more …

Ah. Apparently on 28th January I ran the updater, and it cleared away all application-specific copies and relocated Flash to C:\WINNT\System32\Macromed\Flash (“Macromed”, lovely). Why did it have to end up in the Windows directory when it’s third-party? And moreover, why “Macromed” and not Adobe, since this is Adobe’s installer now?

The installation log file is a real treat to read, though, with long passages of repeating nonsense like this (and this is only a snippet):

File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Call: 1598
File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Call: 1598
File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Call: 1598
File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Call: 1598
File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Call: 1598
File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Call: 1598
File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Call: 1598
File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Call: 1598
File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Call: 1598

Notice that it only understands 8.3 filenames even for standard shell directories? You also have shorter passages like this:

FOUND - 
Call: 127
Jump: 172
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 272
Call: 127
Jump: 164
Jump: 172
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 184
Jump: 272
Call: 127
Jump: 164
Jump: 172
Jump: 184

If you study it closely enough you will eventually see that yes, it did delete my copy of Flash from Firefox, and from Thunderbird: (What was Thunderbird doing with Flash?)

Delete: "C:\PROGRA~1\MOZILLA\Firefox\plugins\NPSWF32.dll"
Delete: DeleteFile("C:\PROGRA~1\MOZILLA\Firefox\plugins\NPSWF32.dll")
...
Jump: 1088
Call: 1598
File: overwriteflag=1, allowskipfilesflag=0, name="C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll"
File: skipped: "C:\DOCUME~1\Dan\LOCALS~1\Temp\nss3.tmp\NSISArray.dll" (overwriteflag=1)
Delete: "C:\Program Files\Mozilla\Thunderbird\plugins\NPSWF32.dll"

Note that the nonsense with allowskipfiles and NSISArray.dll still hasn’t stopped. I can only hope they accidentally left the logger in debug mode, as it really is an outstanding mess.

It’s fun to be seeing illegal operations again though. With the gradual sanitising of Windows, illegal operation errors have become a thing of the past. This is probably a good thing though.


Posted 21st February 2008 – Comments and questions?