mirror of https://github.com/mpv-player/mpv
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:
parent
3075ea01db
commit
26b00ffe8a
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue