On 01/31/11 04:02 AM, Erkki Seppälä wrote: > Subject: [PATCH v2 12/25] [libx11] Instead of copying the value returned by get_prop_name and then releasing it, directly use the return value of get_prop_name, which allocates memory for the name. > Variable "prop_name" not freed or pointed-to in function "strlen"
The shortlog/summary/subject line of the patch really should fit into about 72 characters so it's readable in git shortlog output in a 80 column terminal. > Reviewed-by: Ander Conselvan de Oliveira > <[email protected]> > Signed-off-by: Erkki Seppälä <[email protected]> > --- > src/xlibi18n/XDefaultOMIF.c | 4 +--- > 1 files changed, 1 insertions(+), 3 deletions(-) > > diff --git a/src/xlibi18n/XDefaultOMIF.c b/src/xlibi18n/XDefaultOMIF.c > index bb3986a..f4f141c 100644 > --- a/src/xlibi18n/XDefaultOMIF.c > +++ b/src/xlibi18n/XDefaultOMIF.c > @@ -403,9 +403,7 @@ get_font_name( > return NULL; > } > > - name = (char*) Xmalloc(strlen(prop_name) + 1); > - if (name) > - strcpy(name, prop_name); > + name = prop_name; > > XFreeFont(dpy, fs); > } So after looking at this, I think you should drop the previous [PATCH v2 01/25] and solve both problems in one change, with even less code: XDefaultOMIF.c: Fix memory leaks in get_font_name Instead of copying the value returned by get_prop_name and then releasing it, directly use the return value of get_prop_name, which allocates memory for the name. If get_prop_name returns NULL, continue on to XFreeFont to release the font before returning the NULL via the normal function return. --- a/src/xlibi18n/XDefaultOMIF.c +++ b/src/xlibi18n/XDefaultOMIF.c @@ -381,7 +381,7 @@ get_font_name( XOC oc, char *pattern) { - char **list, *name, *prop_name; + char **list, *name; int count; XFontStruct *fs; Display *dpy = oc->core.om->core.display; @@ -397,13 +397,7 @@ get_font_name( fs = XLoadQueryFont(dpy, pattern); if (fs == NULL) return NULL; - prop_name = get_prop_name(dpy, fs); - if (prop_name == NULL) return NULL; - - name = (char*) Xmalloc(strlen(prop_name) + 1); - if (name) - strcpy(name, prop_name); - + name = get_prop_name(dpy, fs); XFreeFont(dpy, fs); } return name; Plus this would solve the "unused variable prop_name" warning that your patch would introduce. -- -Alan Coopersmith- [email protected] Oracle Solaris Platform Engineering: X Window System _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
