Partially revert fix for CVE-2013-0254 which does not work with our

privilege-separated X and caused broken displays for applications using
qt frames, diff from dcoppa, okay espie.

(An alternative fix would be to disable shm support, i.e.
"CONFIGURE_ARGS += -no-mitshm", I'd prefer this but it would need further
testing).
This commit is contained in:
sthen 2013-10-24 08:39:14 +00:00
parent 76e0b9f8a5
commit 7e3095cdd6
5 changed files with 67 additions and 1 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.115 2013/10/04 13:15:39 dcoppa Exp $
# $OpenBSD: Makefile,v 1.116 2013/10/24 08:39:14 sthen Exp $
ONLY_FOR_ARCHS = ${GCC4_ARCHS}
SHARED_ONLY = Yes
@ -24,6 +24,8 @@ PKGNAME-debug = qt4-debug-${PKGVERSION}
FULLPKGNAME-html = qt4-html-${PKGVERSION}
FULLPKGPATH-html = ${BASE_PKGPATH},-html
REVISION-main = 0
# XXX qmake include parser is bogus
DPB_PROPERTIES = parallel nojunk

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_gui_image_qnativeimage_cpp,v 1.1 2013/10/24 08:39:14 sthen Exp $
Partially revert fix for CVE-2013-0254 which does not work with our
privilege-separated X.
--- src/gui/image/qnativeimage.cpp.orig Thu Oct 10 22:18:28 2013
+++ src/gui/image/qnativeimage.cpp Thu Oct 10 22:18:55 2013
@@ -176,7 +176,7 @@ QNativeImage::QNativeImage(int width, int height, QIma
bool ok;
xshminfo.shmid = shmget(IPC_PRIVATE, xshmimg->bytes_per_line * xshmimg->height,
- IPC_CREAT | 0700);
+ IPC_CREAT | 0777);
ok = xshminfo.shmid != -1;
if (ok) {
xshmimg->data = (char*)shmat(xshminfo.shmid, 0, 0);

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_gui_image_qpixmap_x11_cpp,v 1.1 2013/10/24 08:39:14 sthen Exp $
Partially revert fix for CVE-2013-0254 which does not work with our
privilege-separated X.
--- src/gui/image/qpixmap_x11.cpp.orig Thu Oct 10 16:46:12 2013
+++ src/gui/image/qpixmap_x11.cpp Thu Oct 10 16:34:39 2013
@@ -193,7 +193,7 @@ static bool qt_create_mitshm_buffer(const QPaintDevice
bool ok;
xshminfo.shmid = shmget(IPC_PRIVATE,
xshmimg->bytes_per_line * xshmimg->height,
- IPC_CREAT | 0700);
+ IPC_CREAT | 0777);
ok = xshminfo.shmid != -1;
if (ok) {
xshmimg->data = (char*)shmat(xshminfo.shmid, 0, 0);

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_plugins_platforms_xcb_qxcbwindowsurface_cpp,v 1.1 2013/10/24 08:39:14 sthen Exp $
Partially revert fix for CVE-2013-0254 which does not work with our
privilege-separated X.
--- src/plugins/platforms/xcb/qxcbwindowsurface.cpp.orig Fri Jun 7 07:17:00 2013
+++ src/plugins/platforms/xcb/qxcbwindowsurface.cpp Thu Oct 10 16:36:27 2013
@@ -98,7 +98,7 @@ QXcbShmImage::QXcbShmImage(QXcbScreen *screen, const Q
0);
m_shm_info.shmid = shmget (IPC_PRIVATE,
- m_xcb_image->stride * m_xcb_image->height, IPC_CREAT|0600);
+ m_xcb_image->stride * m_xcb_image->height, IPC_CREAT|0666);
m_shm_info.shmaddr = m_xcb_image->data = (quint8 *)shmat (m_shm_info.shmid, 0, 0);
m_shm_info.shmseg = xcb_generate_id(xcb_connection());

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_plugins_platforms_xlib_qxlibwindowsurface_cpp,v 1.1 2013/10/24 08:39:14 sthen Exp $
Partially revert fix for CVE-2013-0254 which does not work with our
privilege-separated X.
--- src/plugins/platforms/xlib/qxlibwindowsurface.cpp.orig Fri Jun 7 07:17:00 2013
+++ src/plugins/platforms/xlib/qxlibwindowsurface.cpp Thu Oct 10 16:37:14 2013
@@ -99,7 +99,7 @@ void QXlibWindowSurface::resizeShmImage(int width, int
image_info->shminfo.shmid = shmget (IPC_PRIVATE,
- image->bytes_per_line * image->height, IPC_CREAT|0700);
+ image->bytes_per_line * image->height, IPC_CREAT|0777);
image_info->shminfo.shmaddr = image->data = (char*)shmat (image_info->shminfo.shmid, 0, 0);
image_info->shminfo.readOnly = False;