~xmir-team/xorg-server/+git/xmir:server-1.17-branch

Last commit made on 2015-06-16
Get this branch:
git clone -b server-1.17-branch https://git.launchpad.net/~xmir-team/xorg-server/+git/xmir
Members of XMir Development Team can upload to this branch. Log in for directions.

Branch merges

Branch information

Name:
server-1.17-branch
Repository:
lp:~xmir-team/xorg-server/+git/xmir

Recent commits

2123f76... by Adam Jackson <email address hidden>

xserver 1.17.2

Signed-off-by: Adam Jackson <email address hidden>

8a5fb09... by Dave Airlie <email address hidden>

glamor: don't do render ops with matching source/dest (v2)

XRender defines this, GL really doesn't like it.

kwin 4.x and qt 4.x seem to make this happen for the
gradient in the titlebar, and on radeonsi/r600 hw
this draws all kinds of wrong.

v2: bump this up a level, and check it earlier.
(I assume the XXXX was for this case.)

[This corresponds to fa12f2c150b2f50de9dac4a2b09265f13af353af in master,
fixed up for 1.17 branch. - ajax]

Signed-off-by: Dave Airlie <email address hidden>

ea9e021... by Rui Matos

xwayland: Throttle our cursor surface updates with a frame callback

In some extreme cases with animated cursors at a high frame rate we
could end up filling the wl_display outgoing buffer and end up with
wl_display_flush() failing.

In any case, using the frame callback to throttle ourselves is the
right thing to do.

Signed-off-by: Rui Matos <email address hidden>
Reviewed-by: Daniel Stone <email address hidden>
Signed-off-by: Keith Packard <email address hidden>
(cherry picked from commit cbb7eb73b5399e31a7afb800363504d539df0ecf)

6cc61df... by Chris Wilson

present: Copy unflip contents back to the Screen Pixmap

As we unflip after the flip Window no longer passes the pixel ownership
test for the full Screen Pixmap, we can no longer utilize that Window to
copy the contents back to the backing pixmap. To first flip means that
the Window was originally backed by the Screen Pixmap and wholly covered
the Pixmap, thus we need to copy the last frame contents to the Screen
Pixmap when the flip chain is complete.

Signed-off-by: Chris Wilson <email address hidden>
Reviewed-and-Tested-by: Michel Dänzer <email address hidden>
(cherry picked from commit 806470b9f623089dc81b985f250f0c3a4e8edbe8)

8b7e1f3... by Vicente Olivert Riera

backtrace.c: Fix word cast to a pointer

backtrace.c uses a word size provided by libunwind. In some
architectures like MIPS, libunwind makes that word size 64-bit for all
variants of the architecture.

In the lines #90 and #98, backtrace.c tries to do a cast to a pointer,
which fails in all MIPS variants with 32-bit pointers, like MIPS32 or
MIPS64 n32, because it's trying to do a cast from a 64-bit wide variable
to a 32-bit pointer:

Making all in os
make[2]: Entering directory
`/home/test/test/1/output/build/xserver_xorg-server-1.15.1/os'
  CC WaitFor.lo
  CC access.lo
  CC auth.lo
  CC backtrace.lo
backtrace.c: In function 'xorg_backtrace':
backtrace.c:90:20: error: cast to pointer from integer of different size
[-Werror=int-to-pointer-cast]
  if (dladdr((void *)(pip.start_ip + off), &dlinfo) &&
dlinfo.dli_fname &&
      ^
backtrace.c:98:13: error: cast to pointer from integer of different size
[-Werror=int-to-pointer-cast]
      (void *)(pip.start_ip + off));
      ^
cc1: some warnings being treated as errors
make[2]: *** [backtrace.lo] Error 1
make[2]: *** Waiting for unfinished jobs....

Making the cast to a pointer-sized integer, and then to a pointer fixes
the problem.

Related:
  https://bugs.freedesktop.org/show_bug.cgi?id=79939

Signed-off-by: Vicente Olivert Riera <email address hidden>
Reviewed-by: Keith Packard <email address hidden>
Signed-off-by: Keith Packard <email address hidden>
(cherry picked from commit baa50f60acd9e9f4293107435645ab072b6110e1)

c424458... by Ray Strode <email address hidden>

xwayland: default to local user if no xauth file given. [CVE-2015-3164 3/3]

Right now if "-auth" isn't passed on the command line, we let
any user on the system connect to the Xwayland server.

That's clearly suboptimal, given Xwayland is generally designed
to be used by one user at a time.

This commit changes the behavior, so only the user who started the
X server can connect clients to it.

Signed-off-by: Ray Strode <email address hidden>
Reviewed-by: Daniel Stone <email address hidden>
Reviewed-by: Alan Coopersmith <email address hidden>
Signed-off-by: Keith Packard <email address hidden>
(cherry picked from commit 76636ac12f2d1dbdf7be08222f80e7505d53c451)

01b4f5b... by Ray Strode <email address hidden>

os: support new implicit local user access mode [CVE-2015-3164 2/3]

If the X server is started without a '-auth' argument, then
it gets started wide open to all local users on the system.

This isn't a great default access model, but changing it in
Xorg at this point would break backward compatibility.

Xwayland, on the other hand is new, and much more targeted
in scope. It could, in theory, be changed to allow the much
more secure default of a "user who started X server can connect
clients to that server."

This commit paves the way for that change, by adding a mechanism
for DDXs to opt-in to that behavior. They merely need to call

LocalAccessScopeUser()

in their init functions.

A subsequent commit will add that call for Xwayland.

Signed-off-by: Ray Strode <email address hidden>
Reviewed-by: Daniel Stone <email address hidden>
Reviewed-by: Alan Coopersmith <email address hidden>
Signed-off-by: Keith Packard <email address hidden>
(cherry picked from commit 4b4b9086d02b80549981d205fb1f495edc373538)

bebaaa2... by Ray Strode <email address hidden>

xwayland: Enable access control on open sockets [CVE-2015-3164 1/3]

Xwayland currently allows wide-open access to the X sockets
it listens on, ignoring Xauth access control.

This commit makes sure to enable access control on the sockets,
so one user can't snoop on another user's X-over-wayland
applications.

Signed-off-by: Ray Strode <email address hidden>
Reviewed-by: Daniel Stone <email address hidden>
Reviewed-by: Alan Coopersmith <email address hidden>
Signed-off-by: Keith Packard <email address hidden>
(cherry picked from commit c4534a38b68aa07fb82318040dc8154fb48a9588)

761be9c... by Egbert Eich <email address hidden>

Xephyr: Fix broken image when endianess of client machine and host-Xserver differ

The image is created in the native byte order of the machine Xephyr is
rendered on however drawn in the image byte order of the Xephyr server.
Correct byte order in the xcb_image_t structure and convert to native
before updating the window.
If depths of Xephyr and host server differ this is already taken care of
by the depth conversion routine.
It is a terrible wase to always convert and transmit the entire image
no matter of the size of the damaged area. One should probably use
sub-images here. For now we leave this as an exercise.

Signed-off-by: Egbert Eich <email address hidden>
Reviewed-by: Keith Packard <email address hidden>
Signed-off-by: Keith Packard <email address hidden>
(cherry picked from commit 910ddf85219f114744e8996a4ac044c4eafc62ac)

f775f24... by Egbert Eich <email address hidden>

Xephyr: Fix screen image draw for the non-Glamor & non-XHSM case

xcb_image_put() prints the entire image, therefore don't use an offset.

Signed-off-by: Egbert Eich <email address hidden>
Reviewed-by: Keith Packard <email address hidden>
Signed-off-by: Keith Packard <email address hidden>
(cherry picked from commit c65eda5e6676d942e80eaf2650a670174c8bd84a)