On Wed, 22 Dec 2010 18:17:47 -0500 Christopher Michael <[email protected]> wrote:
> On 12/22/2010 06:12 PM, Mike Blumenkrantz wrote: > > On Wed, 22 Dec 2010 18:10:09 -0500 > > Christopher Michael<[email protected]> wrote: > > > >> On 12/22/2010 06:04 PM, Mike Blumenkrantz wrote: > >>> On Wed, 22 Dec 2010 17:59:28 -0500 > >>> Christopher Michael<[email protected]> wrote: > >>> > >>>> On 12/22/2010 05:56 PM, Mike Blumenkrantz wrote: > >>>>> On Wed, 22 Dec 2010 17:46:10 -0500 > >>>>> Christopher Michael<[email protected]> wrote: > >>>>> > >>>>>> Is there a backtrace for this segfault ?? I'm asking because the > >>>>>> illume2 keyboard module has very similar code, and I've never seen it > >>>>>> segfault here. > >>>>>> > >>>>>> Thanks, > >>>>>> dh > >>>>>> > >>>>>> On 12/22/2010 05:22 PM, Enlightenment SVN wrote: > >>>>>>> Log: > >>>>>>> this will avoid a segv, but the entire function is broken and should > >>>>>>> be looked at by someone who knows the code > >>>>>>> > >>>>>>> > >>>>>>> Author: discomfitor > >>>>>>> Date: 2010-12-22 14:22:59 -0800 (Wed, 22 Dec 2010) > >>>>>>> New Revision: 55698 > >>>>>>> Trac: http://trac.enlightenment.org/e/changeset/55698 > >>>>>>> > >>>>>>> Modified: > >>>>>>> trunk/e/src/modules/illume/e_kbd_buf.c > >>>>>>> > >>>>>>> Modified: trunk/e/src/modules/illume/e_kbd_buf.c > >>>>>>> =================================================================== > >>>>>>> --- trunk/e/src/modules/illume/e_kbd_buf.c 2010-12-22 11:23:30 > >>>>>>> UTC (rev 55697) +++ trunk/e/src/modules/illume/e_kbd_buf.c > >>>>>>> 2010-12-22 22:22:59 UTC (rev 55698) @@ -164,9 +164,10 @@ > >>>>>>> if ((actual_len + strlen(str) + 1)> actual_size) > >>>>>>> { > >>>>>>> actual_size += 64; > >>>>>>> - actual = realloc(actual, actual_size); > >>>>>>> + actual = malloc(actual_size); > >>>>>>> + EINA_SAFETY_ON_NULL_RETURN(actual); > >>>>>>> + strcpy(actual, str); > >>>>>>> } > >>>>>>> - strcpy(actual + actual_len, str); > >>>>>>> actual_len += strlen(str); > >>>>>>> } > >>>>>>> } > >>>>>>> > >>>>>> > >>>> > >>>>> I don't know if the segv has ever occurred, but I'm running clang on e > >>>>> because I've been getting too many crashes lately and found this :) > >>>>> > >>>> > >>>> Ok. Well I am asking because of your commit message: "this will avoid a > >>>> segv, but the entire function is broken" .. How is it broken ?? > >>>> > >>>> Remember tho ... you can't always believe what clang tells ya ;) > >>>> > >>>> dh > >>> oh I know, I read through it all carefully before deciding to change > >>> anything. > >> > >> :) > >> > >>> this function seems to be assuming that all the variables at the top are > >>> getting assigned or something (> 0 checks, for instance?) which leads > >>> me to believe that someone was thinking about something else while they > >>> were working :) > >>> > >> Well, from what I am reading, there are getting assigned some values > >> initially: > >> > >> char *actual = NULL; > >> int actual_len = 0; > >> int actual_size = 0; > >> > >> Hmm, not seeing any> 0 checks in that function ... tho there is a> 1 > >> check ;) to make sure that the str returned from the previous function > >> call (_e_kbd_buf_keystroke_string_get) is valid. > >> > >> I'm not arguing with your change, it seems fine :) I'm just wondering > >> about the 'segfault' or 'broken code' statement ;) > >> > >> dh > >> > > unless I'm mistaken, actual_len and actual_size are both 0 here: > > if ((actual_len + strlen(str) + 1)> actual_size) > > which leads to somewhat misleading code which should probably be tidied up > > to avoid giving the wrong impression ;) > > > Ahhh right you are (duh, helps if I actually read it) ;) > > dh > hehe no worries, I do that all the time :) -- Mike Blumenkrantz Zentific: We run the three-legged race individually. ------------------------------------------------------------------------------ Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
