On Wed, 26 Oct 2011 00:27:59 +0200 Martin Jansa <martin.ja...@gmail.com> said:
> On Tue, Oct 25, 2011 at 07:40:11PM +0200, Klaus 'mrmoku' Kurzmann wrote: > > Hi all, > > > > starting with r64102 enlightenment started to segfault on startup with > > the following backtrace: > > > > (gdb) bt > > #0 0x4030a890 in __libc_waitpid (pid=4140, stat_loc=0xbeb463c4, options=0) > > #at ../sysdeps/unix/sysv/linux/waitpid.c:32 1 0x000314b4 in e_alert_show > > #(sig=<optimized out>) at e_alert.c:57 2 <signal handler called> > > #3 0x0005a190 in e_desk_show (desk=0x15a768) at e_desk.c:265 > > #4 0x000d2214 in e_zone_desk_count_set (zone=0x2116c8, x_count=<optimized > > #out>, y_count=<optimized out>) at e_zone.c:674 5 0x000d2e34 in e_zone_new > > #out>(con=<optimized out>, num=<optimized out>, id=<optimized out>, x=0, > > #out>y=0, w=480, h=640) at e_zone.c:244 > > #6 0x0005776c in e_container_new (man=0x174830) at e_container.c:183 > > #7 0x0002fee0 in _e_main_screens_init () at e_main.c:1543 > > #8 main (argc=<optimized out>, argv=<optimized out>) at e_main.c:577 > > > > Disabling the edje message added by r64102 like with the following patch > > makes the segfault go away. > > > > > > diff --git a/e/src/bin/e_desk.c b/e/src/bin/e_desk.c > > index b140187..9ba8608 100644 > > --- a/e/src/bin/e_desk.c > > +++ b/e/src/bin/e_desk.c > > @@ -237,14 +237,14 @@ e_desk_show(E_Desk *desk) > > desk->zone->desk_y_current = desk->y; > > desk->visible = 1; > > > > - msg = alloca(sizeof(Edje_Message_Float_Set) + sizeof(double)); > > - msg->count = 1; > > the count was later fixed to 5 in r64156, but we still had allocated > space only for one double in Edje_Message_Float_Set + one extra, while > using 4 extra double params (Thanks to nschle85 for noticing it) > > diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c > index b140187..9ba8608 100644 > --- a/src/bin/e_desk.c > +++ b/src/bin/e_desk.c > @@ -237,7 +237,7 @@ e_desk_show(E_Desk *desk) > desk->zone->desk_y_current = desk->y; > desk->visible = 1; > > - msg = alloca(sizeof(Edje_Message_Float_Set) + sizeof(double)); > + msg = alloca(sizeof(Edje_Message_Float_Set) + 4 * sizeof(double)); > msg->count = 5; > msg->val[0] = e_config->desk_flip_animate_time; > msg->val[1] = (double) desk->x; > > -- > Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com yeah - that code there was wrong. it didn't allocate anywhere near enough space for the message. -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ The demand for IT networking professionals continues to grow, and the demand for specialized networking skills is growing even more rapidly. Take a complimentary Learning@Cisco Self-Assessment and learn about Cisco certifications, training, and career opportunities. http://p.sf.net/sfu/cisco-dev2dev _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel