Wednesday, January 17, 2007

CSI: Boca Raton FL - forensic programming

A vicious bug I've just unearthed in IBM's OS/2 LINK386 linker preventing it from processing stuff produced by some of Borland's OS/2 language tools reminds me of an earlier incident...

Herein is a tale of foul treachery and sabotage by Microsoft, or at least that's my conjecture as one who "was there". I'll report, you decide.

This story starts back in 1988 during the OS/1 1.3 development time frame - a few years prior to OS/2 2.0 shipping in 1992.

When Microsoft was working on their version of OS/2 1.2, they sent IBM a particular "tarball" of fixes that contained a change in a header file for a constant used in the DosPTrace API -- this is the system call that is the foundation all debuggers use. The change in the particular constant was made a few days before Microsoft went "gold" with their OS/2 1.2 release. IBM picked up the tarball and integrated it into the OS/2 1.3 work that was going on (which MS wanted no part of). Right before their final build, Microsoft restored the value of the constant to what it had been ever since the OS/2 1.0 days.

The effect of IBM integrating this change is that CodeView would fail in mysterious ways on IBM's OS/2 1.3 and work correctly on Microsoft's OS/2 1.2 release (since they put the correct constant value back right before the final build).

Microsoft DID NOT notify IBM of the reversion of this header file constant to its original OS/2 1.0 value.

Some months ensued and the mysterious CodeView failures became evident in OS/2 1.3 testing. The hunt for their cause was on. DIFF's eventually pinpointed the cause, and IBM restored the original constant value and CodeView was working properly again.

Now IBM checked the Microsoft source for their "gold" version of 1.2 and found the restoration of the altered constant in that source. Yet, still no official notification by Microsoft that this reversion was made.

Frankly, "I question the timing", since this change that broke CodeView was only in MS's source tree for a few days, and I question the fact that the reversion to the original was never reported back.

THIS incident is the basis for establishing a prior track record on MS's part of likely sabotage and treachery. If anyone believes the timing and lack of notification represent anything other than a very likely case of sabotage, I have a bridge in Brooklyn to sell them ;->

Lets face it - if IBM had allowed this bug to reach the field and CodeView didn't work on IBM's OS/2 1.3, that would have been a major black eye and caused widespread industry skepticism of IBM's ability to actually handle OS/2 development efforts minus Microsoft. In this regard, it would have been a remarkably fortuitous bug from MS's point of view had it been allowed to slip through. The mass marketability of a bug such as this was very good. "IBM busts CodeView" makes for an easily grokked headline in PC Week. Even the non-technical can understand that one.

Treachery or the mundane? I don't believe in the easter bunny and coincidences like this one ;->

1 comment:

Anonymous said...

It doesn't pay to work with Microsoft on a joint product. They don't share very well.