GAIM Releases

Today I got the latest GAIM release - 0.11.0pre7 in the hopes that the MSN section would be fixed and then MSN, Yahoo, and AIM would all be working again. Well... the MSN section is functioning fine, but the Yahoo code is now generating a crashing error about memory allocation that I believe is related to the GDK/GTK code. When I try to login to Yahoo, I get "Out of memory during ridiculously large request." I've tried to track this down, but due to timing issues with the login, I can't seem to get it pinned down.

This is further complicated by the horrible error message that is given to me. When I try to narrow it down in gdb or ddd I get nothing. So I've sent off messages to the GAIM folks, and I hope they can shed some light on this. I'm getting a little tired of all this breaking, but I understand that this is what some folks do when they release code. What I need to do is to get things working and then stay on that release until I hear from these guys that they have a significant, stable release, then I can move to it.

UPDATE: - I've taken the time to track down all the possible issues and found the problem - sloppy coding by the developers. There is a routine called yahoo_parse_config() where a (char *[]) array is getting parsed for configuration values. This code makes two mistakes - first, is doesn't check at the top of the loop for empty strings, and secondly, it assumes that the result of a strchr() is going to be not-NULL. They then use this assumed value in a calculation for the size of a malloc-ed array. Bad Style. When I added the checks for the empty strings and then for the result of the strchr() everything worked. It's amazing when you look at it. All these problems could have been solved with just a little defensive programming. What a shame.

Anyway... I submitted a fix for both problems to the maintainers and we'll see if it gets incorporated into their code.