Applied rdesktop-x86_64-crash-fix.patch from #1970489.
git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/rdesktop/trunk@1553 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
65af3d5826
commit
19f88c925a
23
ewmhints.c
23
ewmhints.c
@ -431,15 +431,15 @@ ewmh_set_icon(Window wnd, int width, int height, const char *rgba_data)
|
|||||||
{
|
{
|
||||||
unsigned long nitems, i;
|
unsigned long nitems, i;
|
||||||
unsigned char *props;
|
unsigned char *props;
|
||||||
uint32 *cur_set, *new_set;
|
unsigned long *cur_set, *new_set;
|
||||||
uint32 *icon;
|
unsigned long *icon;
|
||||||
|
|
||||||
cur_set = NULL;
|
cur_set = NULL;
|
||||||
new_set = NULL;
|
new_set = NULL;
|
||||||
|
|
||||||
if (get_property_value(wnd, "_NET_WM_ICON", 10000, &nitems, &props, 1) >= 0)
|
if (get_property_value(wnd, "_NET_WM_ICON", 10000, &nitems, &props, 1) >= 0)
|
||||||
{
|
{
|
||||||
cur_set = (uint32 *) props;
|
cur_set = (unsigned long *) props;
|
||||||
|
|
||||||
for (i = 0; i < nitems;)
|
for (i = 0; i < nitems;)
|
||||||
{
|
{
|
||||||
@ -453,15 +453,15 @@ ewmh_set_icon(Window wnd, int width, int height, const char *rgba_data)
|
|||||||
icon = cur_set + i;
|
icon = cur_set + i;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
new_set = xmalloc((nitems + width * height + 2) * 4);
|
new_set = xmalloc((nitems + width * height + 2) * sizeof(unsigned long));
|
||||||
memcpy(new_set, cur_set, nitems * 4);
|
memcpy(new_set, cur_set, nitems * sizeof(unsigned long));
|
||||||
icon = new_set + nitems;
|
icon = new_set + nitems;
|
||||||
nitems += width * height + 2;
|
nitems += width * height + 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
new_set = xmalloc((width * height + 2) * 4);
|
new_set = xmalloc((width * height + 2) * sizeof(unsigned long));
|
||||||
icon = new_set;
|
icon = new_set;
|
||||||
nitems = width * height + 2;
|
nitems = width * height + 2;
|
||||||
}
|
}
|
||||||
@ -493,7 +493,7 @@ ewmh_del_icon(Window wnd, int width, int height)
|
|||||||
{
|
{
|
||||||
unsigned long nitems, i, icon_size;
|
unsigned long nitems, i, icon_size;
|
||||||
unsigned char *props;
|
unsigned char *props;
|
||||||
uint32 *cur_set, *new_set;
|
unsigned long *cur_set, *new_set;
|
||||||
|
|
||||||
cur_set = NULL;
|
cur_set = NULL;
|
||||||
new_set = NULL;
|
new_set = NULL;
|
||||||
@ -501,7 +501,7 @@ ewmh_del_icon(Window wnd, int width, int height)
|
|||||||
if (get_property_value(wnd, "_NET_WM_ICON", 10000, &nitems, &props, 1) < 0)
|
if (get_property_value(wnd, "_NET_WM_ICON", 10000, &nitems, &props, 1) < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cur_set = (uint32 *) props;
|
cur_set = (unsigned long *) props;
|
||||||
|
|
||||||
for (i = 0; i < nitems;)
|
for (i = 0; i < nitems;)
|
||||||
{
|
{
|
||||||
@ -515,12 +515,13 @@ ewmh_del_icon(Window wnd, int width, int height)
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
icon_size = width * height + 2;
|
icon_size = width * height + 2;
|
||||||
new_set = xmalloc((nitems - icon_size) * 4);
|
new_set = xmalloc((nitems - icon_size) * sizeof(unsigned long));
|
||||||
|
|
||||||
if (i != 0)
|
if (i != 0)
|
||||||
memcpy(new_set, cur_set, i * 4);
|
memcpy(new_set, cur_set, i * sizeof(unsigned long));
|
||||||
if (i != nitems - icon_size)
|
if (i != nitems - icon_size)
|
||||||
memcpy(new_set + i * 4, cur_set + i * 4 + icon_size, nitems - icon_size);
|
memcpy(new_set + i * sizeof(unsigned long),
|
||||||
|
cur_set + i * sizeof(unsigned long) + icon_size, nitems - icon_size);
|
||||||
|
|
||||||
nitems -= icon_size;
|
nitems -= icon_size;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user