fixed a potential security flaw
Anselm R. Garbe arg@suckless.org
Thu, 10 May 2007 13:47:44 +0200
1 files changed,
5 insertions(+),
3 deletions(-)
jump to
M
client.c
→
client.c
@@ -365,16 +365,18 @@ if(!name.nitems)
XGetWMName(dpy, c->win, &name); if(!name.nitems) return; - if(name.encoding == XA_STRING) - strncpy(c->name, (char *)name.value, sizeof c->name); + if(name.encoding == XA_STRING) { + strncpy(c->name, (char *)name.value, sizeof c->name - 1); + } else { if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success && n > 0 && *list) { - strncpy(c->name, *list, sizeof c->name); + strncpy(c->name, *list, sizeof c->name - 1); XFreeStringList(list); } } + c->name[sizeof c->name - 1] = '\0'; XFree(name.value); }