Forum » Last.fm Client Support

Last.fm/Mac and VMware Fusion

 
  • Last.fm/Mac and VMware Fusion

    Last.fm seems to somehow trigger a "SecureInput" mode in OS X. This leads to VMware Fusion not getting any keyboard events.

    $ ioreg -l -w 0 | grep SecureInput
    | "IOConsoleUsers" = ({"kCGSSessionSecureInputPID"=967,"kCGSSessionLoginwindowSafeLogin"=No,"kCGSSessionAuditIDKey"=0,"kCGSessionLoginDoneKey"=Yes,"kCGSSessionSystemSafeBoot"=No,"kCGSSessionOnConsoleKey"=Yes,"kCGSSessionUserIDKey"=501,"kSCSecuritySessionID"=9581200,"kCGSSessionUserNameKey"="henk","kCGSSessionGroupIDKey"=501,"kCGSSessionConsoleSetKey"=0,"kCGSSessionIDKey"=256,"kCGSessionLongUserNameKey"="Henk Poley"})


    The kCGSSessionSecureInputPID variable points to the Last.fm process ID. Stopping Last.fm gets VMware working normal again.

    Could one of the devs take a look a this?

  • Apple technical note regarding this OS feature:
    http://developer.apple.com/technotes/tn2007/tn2150.html

  • The culprit seems to be in the QT4 code (QtGui):

    poley:Last.fm.app henk$ grep -ir EnableSecureEventInput *
    Binary file Contents/Frameworks/QtGui.framework/QtGui matches
    Binary file Contents/Frameworks/QtGui.framework/Versions/4/QtGui matches
    Binary file Contents/Frameworks/QtGui.framework/Versions/Current/QtGui matches
    grep: warning: Contents/MacOS/LastFmHelper.app/Contents/MacOS: recursive directory loop

  • Quick fix: That makes the application crash when you open preferences

    Download a hex editor, for example Hex Fiend. Open it.. Command+O (open a file). Command+Shift+G, enter: /Applications/Last.fm.app/Contents/Frameworks/QtGui.framework/Versions/4/QtGui

    ASCII(!) search for "SecureEvent". Change a character in that string. I exchanged one for an 'x'. Command+S to save the file.

    Start Last.fm, and work with VMware Fusion at the same time.

    --

    ioreg doesn't show any secured stuff anymore. And neither are there any binding errors or whatever in the system.log. On the other hand, some malicious program *might* be able to snoop your password when you type it anew into the Last.fm program.

  • Hmm the above doesn't work that well (crash)..

    In QT 4.3.3 QLineEdit::focusOutEvent contains a call qt_mac_secure_keyboard(false); which should disable the secure events again when the edit box loses focus.

    I wonder why this doesn't happen in Last.fm Player

  • Basicly it needs ui.passwordEdit->unsetFocus(); somewhere when the LoginWidget gets destroyed. That's either in resetWidget() or in save(), or maybe it needs a new routine. Don't know enough about QtGui widgets.

  • Just adding my two cents to get this problem noticed and supply some more info.
    As an alternative workaround, you can run Fusion in Unity mode, where you (or at least I) don't have the problem.

    Hopefully, this is a bug that has already been addressed by the QT devs. I'm also not very into QT, but I found a reference to issue 206908 - Secure input bug in QLineEdit widget on the mac, which talks about SecureEventInput being "stack based" (every call to on should have a matching call to off) as well as the need to turn it off when the window loses focus.
    This specific issue has been marked as fixed for 4.4.x, which hasn't been released yet. Don't know when that'll be.

    • muz said...
    • Alumni
    • 15 Apr 2008, 11:14
    This issue is known on our side and should be worked upon for a future release.

Anonymous users may not post messages. Please log in or create an account to post in the forums.