Jacek Caban jack@itma.pwr.wroc.pl writes:
--- libs/wpp/ppy.y 1 May 2003 03:16:21 -0000 1.1 +++ libs/wpp/ppy.y 30 Dec 2004 10:11:39 -0000 @@ -537,7 +537,10 @@ static int boolean(cval_t *v) static marg_t *new_marg(char *str, def_arg_t type) { marg_t *ma = pp_xmalloc(sizeof(marg_t));
- ma->arg = str;
- if(str)
ma->arg = pp_xstrdup(str);
- else
ma->type = type; ma->nnl = 0; return ma;ma->arg = NULL;
@@ -569,7 +572,7 @@ static mtext_t *new_mtext(char *str, int if(str == NULL) mt->subst.argidx = idx; else
mt->subst.text = str;
mt->subst.text = pp_xstrdup(str);
AFAICS the string is already duplicated everywhere these functions are called, so you are adding a memory leak here. Does this patch really make a difference in the behavior?