Who says hacks don’t cause problems?

The other day I had lunch with a friend and a friend of his wanting to get into Mac development. We were talking and this guy said that he admired a company that created “haxies”. I said that I really disliked them as their software can cause problems left and right with the system.

The very next day, I got a ReceiptWallet crash report where the user said he pulled down a menu and tried to create a new library. This action is pretty basic and just uses actions in the nib. In this user’s case, it caused ReceiptWallet to crash. Normally I would have ignored this and just said it was some fluke, but I decided to dig deeper. Here’s the top of the crash report:

Process:         ReceiptWallet [99875]
Path:            /Applications/ReceiptWallet.app/Contents/MacOS/
ReceiptWallet
Identifier:      com.ggtenterprises.receiptwallet
Version:         2.0.9 (2.0.9)
Code Type:       X86 (Native)
Parent Process:  launchd [98]

Date/Time:       2009-03-11 16:49:08.632 -0600
OS Version:      Mac OS X 10.5.6 (9G66)
Report Version:  6

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000c0226ccb
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib               	0x935cd688 objc_msgSend + 24
1   com.apple.AppKit              	0x947c453b -[NSApplication
sendAction:to:from:] + 112
2   com.apple.AppKit              	0x9487317c -[NSMenu
performActionForItemAtIndex:] + 493
3   com.apple.AppKit              	0x94872e81 -[NSCarbonMenuImpl
performActionWithHighlightingForItemAtIndex:] + 220
4   com.apple.AppKit              	0x9484fb5a AppKitMenuEventHandler +
6608
5   com.apple.HIToolbox           	0x964d4143
DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*,
HandlerCallRec*) + 1181
6   com.apple.HIToolbox           	0x964d357d
SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*,
HandlerCallRec*) + 405
7   com.apple.HIToolbox           	0x964efed2 SendEventToEventTarget +
52
8   com.apple.HIToolbox           	0x9652423d
SendHICommandEvent(unsigned long, HICommand const*, unsigned long,
unsigned long, unsigned char, OpaqueEventTargetRef*,

I then looked at what was loaded in memory and saw this:

  0xeb2000 -   0xeb4fff +com.unsanity.menuextraenabler 1.0.3 (1.0.3) /
Library/InputManagers/Menu Extra Enabler/Menu Extra Enabler.bundle/
Contents/MacOS/Menu Extra Enabler

Hmmm, looks like a “haxie” that deals with menus. While the company that makes these haxies has repeatedly said that their software doesn’t cause problems, but until users can prove to me that the problem is reproducible without the haxie installed, I have no insert in pursuing the matter. In a post about two years ago, a member of Apple’s DTS team wrote that they don’t investigate any crash that has haxies in it.

While I use one program (1Password) that patches the system, it is quite stable and only affects a few programs (Safari, FireFox, NetNewsWathcer). I’m just really tired of haxies that touch stuff that they shouldn’t.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.