mirror of
https://gitlab.freedesktop.org/xorg/lib/libxcb.git
synced 2026-05-23 17:38:12 +02:00
If a list is preceded by an align-pad, then accessor for the end-iterator returned a wrong value. Reason: the length of the align-iterator was added to a pointer of list-member type. Therefore, the length was multiplied by the size of the list-member type, due to C pointer arithmetic rules. This has looked like the following, e.g., in xcb_randr_get_crtc_transform_pending_params_end: i.data = ((xcb_render_fixed_t *) prev.data) + ((-prev.index) & (4 - 1)) + (R->pending_nparams); This bug was introduced with the following commit: http://cgit.freedesktop.org/xcb/libxcb/commit/?id=4033d39d4da21842bb1396a419dfc299591c3b1f The fix handles this by casting to char* before adding the align, and then casting the result to the member type. Signed-off-by: Christian Linhart <chris@demorecorder.com> |
||
|---|---|---|
| .. | ||
| man | ||
| .gitignore | ||
| c_client.py | ||
| Makefile.am | ||
| xcb.h | ||
| xcb_auth.c | ||
| xcb_conn.c | ||
| xcb_ext.c | ||
| xcb_in.c | ||
| xcb_list.c | ||
| xcb_out.c | ||
| xcb_util.c | ||
| xcb_windefs.h | ||
| xcb_xid.c | ||
| xcbext.h | ||
| xcbint.h | ||