Added safety check when retrieving the active window title for global auto-type

git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@207 b624d157-de02-0410-bad0-e51aec6abb33
master
sniperbeamer 16 years ago
parent bc8ec1b520
commit 90d515f6e7
  1. 13
      src/lib/AutoType_X11.cpp

@ -170,20 +170,21 @@ void AutoType::performGlobal(){
Window w; Window w;
int revert_to_return; int revert_to_return;
XGetInputFocus(d, &w, &revert_to_return); XGetInputFocus(d, &w, &revert_to_return);
char** list; char** list = NULL;
int tree; int tree;
do { do {
XTextProperty textProp; XTextProperty textProp;
XGetWMName(d, w, &textProp); if (XGetWMName(d, w, &textProp) != 0) {
int count; int count;
Xutf8TextPropertyToTextList(d, &textProp, &list, &count); if (Xutf8TextPropertyToTextList(d, &textProp, &list, &count)<0) return;
if (list) break; if (list) break;
}
Window root = 0; Window root = 0;
Window parent = 0; Window parent = 0;
Window* children = NULL; Window* children = NULL;
unsigned int num_children; unsigned int num_children;
tree = XQueryTree(d, w, &root, &parent, &children, &num_children); tree = XQueryTree(d, w, &root, &parent, &children, &num_children);
w=parent; w = parent;
if (children) XFree(children); if (children) XFree(children);
} while (tree && w); } while (tree && w);
if (!list) return; if (!list) return;