[comp.sys.mac] dLibrarian and Shield INIT bugs

jkjl@munnari.oz (John Lim) (10/18/88)

I am the author of a shareware disk cataloguer by the name of d'Librarian.
One of my customers has written to me about a problem he has with SUM's
Shield INIT. Here's what happens...straight from the Symantec's other
product - the LS Debugger.

	I check for a disk insert event. When one occurs I do a :

	static HParamBlockRec  HPB.volumeParam
	
			myHPB.ioNamePtr = ...;
			myHPB.ioVRefNum = WhichDrive; /* The drive number */
			myHPB.ioVolIndex = 0;

			err = PBHGetVInfo(&myHPB,FALSE);
			
			.
			. Process disk and catalogue it
			.
			
			if (WhichDrive > 0) /* Do not eject if default disk */
				PBEject(&myHPB);
				^^^^^^^
				^^^^^^^
				^^^^^^^ (triple dose)
				
This PBEject() is a killer. myHPB is corrupted by Shield INIT
which must trap/patch some low level global. Why do I put the blame
on Shield ? Because the stupid Shield cursor appears, and then the
GuardianSavData file gets updated.

myHPB.ioNamePtr gets corrupted, and because I use the contents of
ioNamePtr my program gets an unwarranted socking. I know INITs are a
bloody pain to write (ie. Moire and all the bug reports), but I think
it's damn stupid to assume every call to PBEject is by the Operating 
System. IM 2/4 surely don't say that 'PBEject' is reserved for only
SUM and Apple, do they &-( ???

My client, Werner J. Herbrik of West Germany has written to SUM also
for help. As a poor shareware author I don't have the resources of SUM.
It must be easier for them to earn their reputation for excellent
customer support than for me to solve the N-complete problem. I will
change that PBEject to Eject(0L,WhichDrive), but I must emphasize that
the onus is on SUM to fix their bug.

If anyone from SUM is listening, please e-mail me if you have any queries
about Werner or the bug. I can send a copy of the cataloguer if you want
me to prove it. The version of Shield was the one distributed by Rich a
few months ago, and the autovolsave feature was enabled. This bug does
not appear under manual autosave.

	john lim
	jkjl@munnari.oz.au

PS : Someone mentioned that Moire 1.41 crashes with SUM's HD Partition a
few days ago. I'm glad to report that Moire 2.2 doesn't, no matter what
order the INITs are run in.