Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[xsrc/trunk]: xsrc/external/mit/MesaLib/dist/src From 02c3dad0f3b4d26e0faa5cc...
details: https://anonhg.NetBSD.org/xsrc/rev/13026c576414
branches: trunk
changeset: 10410:13026c576414
user: maya <maya%NetBSD.org@localhost>
date: Sun Dec 01 20:21:21 2019 +0000
description:
>From 02c3dad0f3b4d26e0faa5cc51d06bc50d693dcdc Mon Sep 17 00:00:00 2001
From: Brian Paul <brianp%vmware.com@localhost>
Date: Wed, 9 Oct 2019 12:05:16 -0600
Subject: [PATCH] Call shmget() with permission 0600 instead of 0777
A security advisory (TALOS-2019-0857/CVE-2019-5068) found that
creating shared memory regions with permission mode 0777 could allow
any user to access that memory. Several Mesa drivers use shared-
memory XImages to implement back buffers for improved performance.
This path changes the shmget() calls to use 0600 (user r/w).
Tested with legacy Xlib driver and llvmpipe.
Cc: mesa-stable%lists.freedesktop.org@localhost
Reviewed-by: Kristian H. Kristensen <hoegsberg%google.com@localhost>
diffstat:
external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c | 3 ++-
external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c | 3 ++-
external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diffs (40 lines):
diff -r f5207352cf92 -r 13026c576414 external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c
--- a/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c Mon Oct 28 03:20:13 2019 +0000
+++ b/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c Sun Dec 01 20:21:21 2019 +0000
@@ -94,7 +94,8 @@
{
char *addr;
- dri_sw_dt->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT|0777);
+ /* 0600 = user read+write */
+ dri_sw_dt->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT | 0600);
if (dri_sw_dt->shmid < 0)
return NULL;
diff -r f5207352cf92 -r 13026c576414 external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c
--- a/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c Mon Oct 28 03:20:13 2019 +0000
+++ b/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c Sun Dec 01 20:21:21 2019 +0000
@@ -126,7 +126,8 @@
shminfo->shmid = -1;
shminfo->shmaddr = (char *) -1;
- shminfo->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT|0777);
+ /* 0600 = user read+write */
+ shminfo->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT | 0600);
if (shminfo->shmid < 0) {
return NULL;
}
diff -r f5207352cf92 -r 13026c576414 external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c
--- a/external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c Mon Oct 28 03:20:13 2019 +0000
+++ b/external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c Sun Dec 01 20:21:21 2019 +0000
@@ -89,8 +89,9 @@
return GL_FALSE;
}
+ /* 0600 = user read+write */
b->shminfo.shmid = shmget(IPC_PRIVATE, b->backxrb->ximage->bytes_per_line
- * b->backxrb->ximage->height, IPC_CREAT|0777);
+ * b->backxrb->ximage->height, IPC_CREAT | 0600);
if (b->shminfo.shmid < 0) {
_mesa_warning(NULL, "shmget failed while allocating back buffer.\n");
XDestroyImage(b->backxrb->ximage);
Home |
Main Index |
Thread Index |
Old Index