Fix bad _NET_WM_ICON consistency check.

SVN revision: 15798
This commit is contained in:
Kim Woelders 2005-07-17 10:22:49 +00:00
parent 5124d0981e
commit 048a4164f1
1 changed files with 6 additions and 5 deletions

View File

@ -609,7 +609,8 @@ static void
EWMH_GetWindowIcons(EWin * ewin) EWMH_GetWindowIcons(EWin * ewin)
{ {
unsigned int *val; unsigned int *val;
int i, num; unsigned int i;
int num;
if (ewin->ewmh.wm_icon) if (ewin->ewmh.wm_icon)
{ {
@ -623,16 +624,16 @@ EWMH_GetWindowIcons(EWin * ewin)
if (num <= 0) if (num <= 0)
return; return;
if (num < (int)(2 + val[0] * val[1])) if (num < 2 || num < (int)(2 + val[0] * val[1]))
{ {
Eprintf Eprintf
("*** EWMH_GetWindowIcons Icon data/size mismatch (ignoring): %s: N=%d WxH=%dx%d\n", ("*** EWMH_GetWindowIcons Icon data/size mismatch (ignoring): %s: N=%d WxH=%dx%d\n",
EwinGetName(ewin), num, val[0], val[1]); EwinGetName(ewin), num, val[0], (num >= 2) ? val[1] : 0);
Efree(val); Efree(val);
return; return;
} }
for (i = 0; i < num - 1;) for (i = 0; i < (unsigned int)(num - 1);)
{ {
#if 0 #if 0
Eprintf("App %s: Icon %d-%4d - %dx%d\n", Eprintf("App %s: Icon %d-%4d - %dx%d\n",
@ -640,7 +641,7 @@ EWMH_GetWindowIcons(EWin * ewin)
#endif #endif
i += 2 + val[i] * val[i + 1]; i += 2 + val[i] * val[i + 1];
} }
if (i != num) if (i != (unsigned int)num)
Eprintf Eprintf
("*** EWMH_GetWindowIcons Icon data/size mismatch: %s: %d!=%d\n", ("*** EWMH_GetWindowIcons Icon data/size mismatch: %s: %d!=%d\n",
EwinGetName(ewin), i, num); EwinGetName(ewin), i, num);