On Thu, Jun 17, 2010 at 10:09:37AM -0400, Jeff Johnson wrote:
>
> On Jun 17, 2010, at 4:27 AM, Markdv wrote:
>
> >
> > I just don't see why you wouldn't want to "fix" this. Seems like all you'd
> > have to do is add
> >
> > con->os->nextArg = _free(con->os->nextArg);
> >
> > to poptFreeContext(poptContext con) and be done with it.
> >
>
> There's a double free with your suggested "fix" if/when the application
> has also free'd the memory returned.
>
> 73 de Jeff
>
Sorry Jeff,
could you please show me an example of double-free against with that "fix" ?
For the poptGetOptArg(), you mentioned,
~snip~
1554 char * poptGetOptArg(poptContext con)
1555 {
1556 char * ret = NULL;
1557 if (con) {
1558 ret = con->os->nextArg;
1559 con->os->nextArg = NULL;
1560 }
1561 return ret;
1562 }
~snip~
So if someone called the poptGetOptArg(), _free(con->os->nextArg) of the
poptResetContext() will do nothing.
I know, this thread is too old.
But it was talking about popt >= 1.16 and people still are using the popt-1.16.
So it is not too old to continue.
______________________________________________________________________
POPT Library http://rpm5.org
Developer Communication List [email protected]