fixed a potential security flaw
parent
b6b2f584ec
commit
b8bccb4ac5
8
client.c
8
client.c
|
@ -365,16 +365,18 @@ updatetitle(Client *c) {
|
||||||
XGetWMName(dpy, c->win, &name);
|
XGetWMName(dpy, c->win, &name);
|
||||||
if(!name.nitems)
|
if(!name.nitems)
|
||||||
return;
|
return;
|
||||||
if(name.encoding == XA_STRING)
|
if(name.encoding == XA_STRING) {
|
||||||
strncpy(c->name, (char *)name.value, sizeof c->name);
|
strncpy(c->name, (char *)name.value, sizeof c->name - 1);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
|
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
|
||||||
&& n > 0 && *list)
|
&& n > 0 && *list)
|
||||||
{
|
{
|
||||||
strncpy(c->name, *list, sizeof c->name);
|
strncpy(c->name, *list, sizeof c->name - 1);
|
||||||
XFreeStringList(list);
|
XFreeStringList(list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
c->name[sizeof c->name - 1] = '\0';
|
||||||
XFree(name.value);
|
XFree(name.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue