mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-20 05:50:04 +01:00
The X server swapping code is a huge attack surface, much of this code
is untested and prone to security issues. The use-case of byte-swapped
clients is very niche, so allow users to disable this if they don't
need it, using either a config option or commandline flag.
For Xorg, this adds the ServerFlag "AllowByteSwappedClients" "off".
For all DDX, this adds the commandline options +byteswappedclients and
-byteswappedclients to enable or disable, respectively.
Fixes #1201
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
(cherry picked from commit 412777664a)
(cherry picked from commit af5cd5acc9012e527ee869f8e98bf6c2e9a02ca4)
Backport to server-21.1-branch modified to keep byte-swapping enabled
by default but easy to disable by users or admins (or even by distros
shipping an xorg.conf.d fragment in their packages).
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1440>
79 lines
2.5 KiB
C
79 lines
2.5 KiB
C
/*
|
|
|
|
Copyright 1987, 1998 The Open Group
|
|
|
|
Permission to use, copy, modify, distribute, and sell this software and its
|
|
documentation for any purpose is hereby granted without fee, provided that
|
|
the above copyright notice appear in all copies and that both that
|
|
copyright notice and this permission notice appear in supporting
|
|
documentation.
|
|
|
|
The above copyright notice and this permission notice shall be included
|
|
in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
Except as contained in this notice, the name of The Open Group shall
|
|
not be used in advertising or otherwise to promote the sale, use or
|
|
other dealings in this Software without prior written authorization
|
|
from The Open Group.
|
|
|
|
*/
|
|
|
|
#ifndef OPAQUE_H
|
|
#define OPAQUE_H
|
|
|
|
#include <X11/Xmd.h>
|
|
|
|
#include "globals.h"
|
|
|
|
extern _X_EXPORT int LimitClients;
|
|
extern _X_EXPORT volatile char isItTimeToYield;
|
|
extern _X_EXPORT volatile char dispatchException;
|
|
|
|
/* bit values for dispatchException */
|
|
#define DE_RESET 1
|
|
#define DE_TERMINATE 2
|
|
#define DE_PRIORITYCHANGE 4 /* set when a client's priority changes */
|
|
|
|
extern _X_EXPORT int ScreenSaverBlanking;
|
|
extern _X_EXPORT int ScreenSaverAllowExposures;
|
|
extern _X_EXPORT int defaultScreenSaverBlanking;
|
|
extern _X_EXPORT int defaultScreenSaverAllowExposures;
|
|
extern _X_EXPORT const char *display;
|
|
extern _X_EXPORT int displayfd;
|
|
extern _X_EXPORT Bool explicit_display;
|
|
|
|
extern _X_EXPORT Bool disableBackingStore;
|
|
extern _X_EXPORT Bool enableBackingStore;
|
|
extern _X_EXPORT Bool enableIndirectGLX;
|
|
extern _X_EXPORT Bool PartialNetwork;
|
|
extern _X_EXPORT Bool RunFromSigStopParent;
|
|
|
|
#ifdef RLIMIT_DATA
|
|
extern _X_EXPORT int limitDataSpace;
|
|
#endif
|
|
#ifdef RLIMIT_STACK
|
|
extern _X_EXPORT int limitStackSpace;
|
|
#endif
|
|
#ifdef RLIMIT_NOFILE
|
|
extern _X_EXPORT int limitNoFile;
|
|
#endif
|
|
extern _X_EXPORT Bool defeatAccessControl;
|
|
extern _X_EXPORT long maxBigRequestSize;
|
|
extern _X_EXPORT Bool party_like_its_1989;
|
|
extern _X_EXPORT Bool whiteRoot;
|
|
extern _X_EXPORT Bool bgNoneRoot;
|
|
|
|
extern _X_EXPORT Bool CoreDump;
|
|
extern _X_EXPORT Bool NoListenAll;
|
|
|
|
extern _X_EXPORT Bool AllowByteSwappedClients;
|
|
|
|
#endif /* OPAQUE_H */
|