Last week I was sorting through several sets of Microsoft C 5.1 disks from 1988 (more about that later). While I was comparing the disk images to see whether the disks were the same or not, despite different labels and part numbers, I did a double take when I realized that a file with random e-mail fragments was, in fact, a MS C 5.1 disk:

nts to the beginning of an _iob structure within the _iob array. But that's not very likely. What usually happens is people passing in NULL or some random value. From davewe Wed Nov 11 11:10:28 1987 To: jeffrob stevesa Subject: stream validation Cc: barrymc billjo dougbo gregf Date: We

It’s not clear on which host OS the MS C 5.1 disks were created and how (copying files to a floppy vs. creating disk images on a hard disk). But it is certain that the software involved did not sanitize the buffers and random fragments of data stored in the host system’s memory ended up in the final sectors of numerous files.

The issue is that with random length files and fixed size (512 bytes) sectors, there is almost always some unused space in the last sector allocated for a file. All modern operating systems and software sanitize this storage, since not doing so is a potential security hazard. If sanitization isn’t performed, things like this can end up on distribution media shipped to customers:

and we're going to KILL HIM WITH HAMMERS. Hahahahahahahaha. And THEN we're going to ... From reedk Fri Feb 26 14:49:45 1988 To: gregf Subject: reminder Date: Fri Feb 26 15:40:54 1988 Mail-Flags: 0000 the dates and times on the release to kamber need to be 5.10 am etc. thx From erikl Sun Feb 28 23:30:46 1988 To: billta dougbo gregf mikeko timc Subject: Resignation Date: Sun Feb 28 23:26:25 1988 Mail-Flags: 0000 I am resigning from Microsoft effective 5:00 pm, Friday,

It is possible that disk buffers weren’t cleared before use, and it’s also possible that the host OS Microsoft used did not clear memory handed out to a new process (that would certainly be the case in DOS). In any modern OS, process B must not receive allocated memory that process A previously used without the memory being scrubbed, typically zeroed. Otherwise all sorts of sensitive information might accidentally leak through.

To: pauls Subject: Mouse Driver Update Cc: alisonc gregf reedk rossg Date: Wed Mar 2 11:51:31 1988 Where do we get the new version of the mouse driver? We are building our final disks for C 5.1 today!! Is this tested and stable?

Most of the fragments are not particularly enlightening or damaging, but perhaps slightly embarrassing as the one above.

ake it equally difficult to change the limit. Let's keep the run-time consistent. From rossg Fri Dec 18 11:54:51 1987 To: dos5 user5 Subject: Conversion to xenix386 - important Date: Fri Dec 18 12:50:50 1987 Mail-Flags: 0000 The following is a description of how we plan to do the

Mentions of other products are certainly interesting. Note the ‘dos5’ mail alias above, which was no doubt the internal OS/2 (at one point known as DOS 5) mailing list and Microsoft.

y new error codes to appropriate ERRNO values. Let's hope that IBM doesn't decided that they need new libs for IBM C/2 v1.0 (also known as IBM C 2.0) because of this... From stevesa Thu Oct 1 22:55:18 1987 To: boca5!scottr Subject: How spawnlp might set errno Cc: davewe gregf Date: Thu Oct 1 22:55:15 1987 Mail-Flags: 0000 | From boca5!scottr Thu Oct 1 08:49:13 1987 | To: microsoft

The above shows Micorosoft’s communication with IBM (in Boca Raton, FL). For the most part, the fragments are simply historical curiosities.

Mail-Flags: 0000 Here are three new PTMs: Component: FAPI Error: ABE Level: OS/2 v1.1, rev 4.67 (88-02-18) Environment: IBM PC/AT, DOS 3.3 Abstract: Family API DosOpen fails to open "PRN" Error: A bound program which opens the printer device using an "OpenFlag" of 041h and an "OpenMode" of 012h fails running in real mode but works in protected mode. Changing the OpenMode from 12h to 11h causes the open to succeed, but the 12h value should also work. Component: USHP Error: ABO Leve

The above is a bug report against the in-development OS/2 1.1, a build from February 1988, somewhat older than the revision 4.72 build from March 7, 1988 which was distributed with the MS OS/2 1.03 SDK.

Random memory fragments such as those listed here can be found on many IBM and Microsoft disks, but usually they contain bits of directories or executables, not plain text of e-mails.

It seems highly likely that others would have noticed these fragments on the MS C 5.1 disks in the 25+ years since its release. Or perhaps not?