Saturday, October 28, 2006

*** glibc detected *** skype: free(): invalid pointer:

Since I installed Kubuntu (Dapper) on my laptop I was unable to run Skype on it. Every time I tried it glibc would complain about an invalid pointer error. The error I was getting was something like:

*** glibc detected *** skype: free(): invalid pointer: 0x08be74b8 ***

For weeks I searched in forums, mailing lists and even send a support request to Skype with no avail but today I found a work around. With Kubuntu Edgy released I wanted to try it so I made a fresh install on my laptop. Soon after the install I used the Skype repository to install Skype and to my delight I was able to run it and make calls.

Happy with this result I started installing scim and anthy for japanese input support and when done I found that Skype would not start and was giving me exactly the same invalid pointer error as before...

After installing/desinstalling packages and setting/unsetting environment variables I found that Skype fails if the environment variable QT_IM_MODULE=scim is set. This is one of the environment variables needed to enable scim in Qt applications and since Skype is written in Qt this environment variable seems to be confusing it.

So the solution is in fact very simply... unset QT_IM_MODULE before running Skype:

$ unset QT_IM_MODULE; skype

or

$ QT_IM_MODULE="" skype

I find it easier to create an alias at the end of the .bash_profile file so I can simply call the alias:

$ alias skype='QT_IM_MODULE="" skype'

Running skype now will set the QT_IM_MODULE environment variable to "" and call the skype binary.

The only problem I find with this is that I cannot input japanese or any other scim input method in Skype. But since I use Skype only for phone calls is not a big issue for me. Now I only have to wait for the video support to be included in the linux version...

1 comment:

  1. Anonymous1:09 PM

    Thanks for sharing this info, very helpful.

    ReplyDelete