glx: reject negative size in FeedbackBuffer and SelectBuffer requests
Some checks are pending
Build X servers / xserver-build-ubuntu (push) Waiting to run
Build X servers / drivers-prepare-ubuntu (push) Waiting to run
Build X servers / drivers-build-ubuntu (input-elographics:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (input-evdev:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (input-joystick:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (input-keyboard:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (input-libinput:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (input-mouse:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (input-synaptics:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (input-vmmouse:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (input-void:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (input-wacom:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-amdgpu:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-apm:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-ark:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-ast:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-ati:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-chips:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-cirrus:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-dummy:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-fbdev:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-freedreno:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-geode:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-i128:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-i740:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-intel:25.0.1) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-mach64:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-mga:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-neomagic:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-nested:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-nouveau:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-nv:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-omap:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-qxl:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-r128:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-rendition:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-s3virge:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-savage:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-siliconmotion:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-sis:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-sisusb:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-suncg14:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-suncg3:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Blocked by required conditions
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Blocked by required conditions
Build X servers / xserver-build-mingw32-ubuntu (push) Waiting to run
Build X servers / xserver-build-macos (push) Waiting to run
Build X servers / xserver-build-freebsd (push) Waiting to run
Build X servers / xserver-build-dragonflybsd (push) Waiting to run
Build X servers / xserver-build-netbsd (push) Waiting to run
Build X servers / xserver-build-cygwin (push) Waiting to run
Build X servers / xserver-build-arch (push) Waiting to run
Build X servers / Check Signed-Off-By (push) Waiting to run
Build X servers / Release pushed tag (push) Blocked by required conditions
check PRs for merge conflicts / notify (push) Waiting to run

Assisted-by: Claude:claude-claude-opus-4-6
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2206>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Peter Hutterer 2026-04-17 12:02:13 +10:00 • committed by Enrico Weigelt
commit ddf5ec99fc
2 changed files with 16 additions and 0 deletions

View file

@ -63,6 +63,10 @@ __glXDisp_FeedbackBuffer(__GLXclientState * cl, GLbyte * pc)
pc += __GLX_SINGLE_HDR_SIZE;
size = *(GLsizei *) (pc + 0);
type = *(GLenum *) (pc + 4);
if (size < 0) {
cl->client->errorValue = size;
return BadValue;
}
if (cx->feedbackBufSize < size) {
cx->feedbackBuf = reallocarray(cx->feedbackBuf,
(size_t) size, __GLX_SIZE_FLOAT32);
@ -93,6 +97,10 @@ __glXDisp_SelectBuffer(__GLXclientState * cl, GLbyte * pc)
pc += __GLX_SINGLE_HDR_SIZE;
size = *(GLsizei *) (pc + 0);
if (size < 0) {
cl->client->errorValue = size;
return BadValue;
}
if (cx->selectBufSize < size) {
cx->selectBuf = reallocarray(cx->selectBuf,
(size_t) size, __GLX_SIZE_CARD32);

View file

@ -61,6 +61,10 @@ __glXDispSwap_FeedbackBuffer(__GLXclientState * cl, GLbyte * pc)
swapl((CARD32*)(pc + 4));
size = *(GLsizei *) (pc + 0);
type = *(GLenum *) (pc + 4);
if (size < 0) {
cl->client->errorValue = size;
return BadValue;
}
if (cx->feedbackBufSize < size) {
cx->feedbackBuf = reallocarray(cx->feedbackBuf,
(size_t) size, __GLX_SIZE_FLOAT32);
@ -93,6 +97,10 @@ __glXDispSwap_SelectBuffer(__GLXclientState * cl, GLbyte * pc)
pc += __GLX_SINGLE_HDR_SIZE;
swapl((CARD32*)(pc + 0));
size = *(GLsizei *) (pc + 0);
if (size < 0) {
cl->client->errorValue = size;
return BadValue;
}
if (cx->selectBufSize < size) {
cx->selectBuf = reallocarray(cx->selectBuf,
(size_t) size, __GLX_SIZE_CARD32);