From: <Val...@vt...> - 2007-01-13 08:42:56
|
OK, so I started to wonder why e16 would segv every time I tried to open the 'About Enlightenment' to check the build date I was actually running... Turns out that sometimes, the 'sound' resource isn't set. And this eventually lead to a crash trying to strcpy from a null pointer down in SclassFind. I'm going to bet that a lot of people never see this because they get saved by the !Conf_sound.enable check just before.... (This patch *also* fixed a number of other mysterious crashes when e16 tried to put up a dialog box..) Index: src/sound.c =================================================================== RCS file: /var/cvs/e/e16/e/src/sound.c,v retrieving revision 1.50 diff -u -r1.50 sound.c --- src/sound.c 9 Dec 2006 21:32:03 -0000 1.50 +++ src/sound.c 13 Jan 2007 10:02:42 -0000 @@ -271,6 +271,9 @@ if (!Conf_sound.enable) return; + if (!name || ! *name) + return; + sclass = SclassFind(name); SclassApply(sclass); } |