x11: fix potentially unaligned access in icon loader

Tried to load a 32 bit value by dereferencing a uint32_t pointer, but
the pointer is not guaranteed to be aligned, not even in practice.
This commit is contained in:
wm4 2014-05-10 10:40:46 +02:00
parent 3075ea01db
commit 26b00ffe8a
1 changed files with 3 additions and 3 deletions

View File

@ -1221,9 +1221,9 @@ static void vo_x11_set_wm_icon(struct vo_x11_state *x11)
for (int n = 0; n < num_icons; n++) { for (int n = 0; n < num_icons; n++) {
*cur++ = icon_w[n]; *cur++ = icon_w[n];
*cur++ = icon_h[n]; *cur++ = icon_h[n];
uint32_t *src = icon_data[n]; uint8_t *s = icon_data[n];
for (int i = 0; i < icon_h[n] * icon_w[n]; i++) for (int i = 0; i < icon_h[n] * icon_w[n]; i++, s += 4)
*cur++ = src[i]; *cur++ = s[0] | (s[1] << 8) | (s[2] << 16) | ((unsigned)s[3] << 24);
} }
XChangeProperty(x11->display, x11->window, x11->XA_NET_WM_ICON, XChangeProperty(x11->display, x11->window, x11->XA_NET_WM_ICON,