-
Notifications
You must be signed in to change notification settings - Fork 113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
xorgrdp: XF86VidModeSetGamma() -> BadValue #271
Comments
Thanks for this @jknockel I'm moving this to the xorgxrdp repo where it can be addressed. |
BTW this is a great fault report - we don't get many test programs submitted. By default the TigerVNC server (i.e. Xvnc) does not provide this extension. Here's a bit of analysis:- The current implementation of the server-side of https://cgit.freedesktop.org/xorg/xserver/tree/Xext/vidmode.c#n1391 From that we can see that for a virtual X server, the The function pointer above is set up here for each screen:- https://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/common/xf86VidMode.c#n396 That's called from here:- https://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/common/xf86VidMode.c#n440 The best thing to do here is probably to disable the extension as it does not seem to server any useful purpose here. It's a fairly old part of Xorg as the name indicates, and it even has its own option I've raised a PR (above) to do this for review by the team. In the meantime, if you edit Setting the |
Thanks, adding |
xrdp version
0.9.17
Detailed xrdp version, build options
Operating system & version
Ubuntu 22.04
Installation method
dnf / apt / zypper / pkg / etc
Which backend do you use?
xorgxrdp
What desktop environment do you use?
gnome-flashback
Environment xrdp running on
Physical or VM
What's your client?
No response
Area(s) with issue?
Graphic glitches, Other
Steps to reproduce
Compile and execute the following program in an
xorgrdp
session:gamma.c.zip
✔️ Expected Behavior
Either the
XF86VidMode
extension not to be present or for the call toXF86VidModeSetGamma()
to not deliver an asynchronousBadValue
error.❌ Actual Behavior
XF86VidModeSetGamma()
mode crashes the program with aBadValue
error.Anything else?
Many X screensaver programs use
XF86VidModeSetGamma()
calls to implement a fade-to-black effect before starting the screensaver, but these appear to crash in anxorgrdp
session with an asynchronousBadValue
error. I couldn't find anything in terms of a specification onXF86VidModeSetGamma()
, but these programs are written to not guard against an asynchronous error from callingXF86VidModeSetGamma()
and, since they use Xlib, crash when they receive it. However, before callingXF86VidModeSetGamma()
, they do check for the presence of theXF86VidMode
extension and that it is at least version 2.0, but both of these conditions appear true in anxorgrdp
session, and so they fatally callXF86VidModeSetGamma()
anyways.The text was updated successfully, but these errors were encountered: