On 2022/12/15 12:50, Rafael Sadowski wrote:
> Our Xorg server doesn't run under the same uid as the client, the client
> needs to create the shared memory area with mode 0666.
> 
> We are doing the same in misc/screen-shm. Of course, the consequence
> here would be to do it for all Qt applications.

Difference is that the only reason to run screen-shm is for use with
misc/brltty, so there's very little exposure.

What are the consequences of leaving this as-is? (i.e. what's broken
now that changing this would fix?)


> Feedback? OK?
> 
> More: https://marc.info/?l=openbsd-tech&m=166836794116517&w=2
> 
> diff --git a/x11/qt5/qtbase/Makefile b/x11/qt5/qtbase/Makefile
> index 8f02f2f3795..5ba3c3d5092 100644
> --- a/x11/qt5/qtbase/Makefile
> +++ b/x11/qt5/qtbase/Makefile
> @@ -12,7 +12,7 @@ PKGNAME-global =    qt5-global-${VERSION}
>  PKGNAME-psql =               qt5-postgresql-${VERSION}
>  PKGNAME-tds =                qt5-tds-${VERSION}
>  
> -REVISION-main =              2
> +REVISION-main =              3
>  
>  PKG_ARCH-global =    *
>  PKG_ARCH-examples =  *
> diff --git 
> a/x11/qt5/qtbase/patches/patch-src_plugins_platforms_xcb_qxcbbackingstore_cpp 
> b/x11/qt5/qtbase/patches/patch-src_plugins_platforms_xcb_qxcbbackingstore_cpp
> new file mode 100644
> index 00000000000..ea4cd301454
> --- /dev/null
> +++ 
> b/x11/qt5/qtbase/patches/patch-src_plugins_platforms_xcb_qxcbbackingstore_cpp
> @@ -0,0 +1,14 @@
> +The X server doesn't run under the same uid as the client, the client needs 
> to
> +create the shared memory area with mode 0666
> +Index: src/plugins/platforms/xcb/qxcbbackingstore.cpp
> +--- src/plugins/platforms/xcb/qxcbbackingstore.cpp.orig
> ++++ src/plugins/platforms/xcb/qxcbbackingstore.cpp
> +@@ -406,7 +406,7 @@ void QXcbBackingStoreImage::createShmSegment(size_t se
> + bool QXcbBackingStoreImage::createSystemVShmSegment(xcb_connection_t *c, 
> size_t segmentSize,
> +                                                     xcb_shm_segment_info_t 
> *shmInfo)
> + {
> +-    const int id = shmget(IPC_PRIVATE, segmentSize, IPC_CREAT | 0600);
> ++    const int id = shmget(IPC_PRIVATE, segmentSize, IPC_CREAT | 0666);
> +     if (id == -1) {
> +         qCWarning(lcQpaXcb, "shmget() failed (%d: %s) for size %zu", errno, 
> strerror(errno), segmentSize);
> +         return false;
> 

Reply via email to