Re: debugging the gtk fe
I think they were mallocing so you could write the args.
I think it needs to be writable ?
Then of course the code is bad. But there may have been a reason for the malloc.
Mike
On 7/28/05, Colin Watson <cjwatson@debian.org> wrote:
> On Thu, Jul 28, 2005 at 11:45:03AM -0400, Mike Emmel wrote:
> > On 7/28/05, fiandro@tiscali.it <fiandro@tiscali.it> wrote:
> > > As i told you before i'm not very good at debugging code, but from your message
> > > i've seen the problem is related to argc and argv pointers: they are hand-created
> > > at line 1370 of gtk.c this way
> > >
> > > /* FIXME: This can surely be done in a better way */
> > > (char**) name = malloc(2 * sizeof(char*));
> > > (char*) name[0] = malloc(8 * sizeof(char));
> > > name[0] = "debconf";
> > > name[1] = NULL;
> > >
> > > and used this way
> > >
> > > gtk_init (&args, &name);
> > >
> > > those lines used to be cause of some (not many) strange crashes even
> > > in an X environment.
> > > may be this related to the crashes?
> >
> > Yep you forgot to allocate space for the terminal \0 and set it.
> > name[0] = malloc(10 * sizeof(char));
> > memset(name[0],10,sizeof(char);
>
> That's clearly wrong, as (a) 8 == strlen("debconf") + 1, (b) the string
> literal "debconf" includes a trailing '\0', (c) name[0] gets overwritten
> by the assignment anyway so that malloc is entirely irrelevant. Anyway,
> as I said in my other mail, I've made the code more normal in trunk.
>
> Cheers,
>
> --
> Colin Watson [cjwatson@debian.org]
>
Reply to: