[gentoo-commits] repo/gentoo:master commit in: net-misc/gnome-remote-desktop/files/
commit: 6dea4493432086e510b044d3dda3451ee045e3dd Author: Michael Mair-Keimberger levelnine at> AuthorDate: Sat Apr 24 15:47:57 2021 + Commit: Conrad Kostecki gentoo org> CommitDate: Sun Apr 25 12:59:32 2021 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6dea4493 net-misc/gnome-remote-desktop: remove unused patch(es) Closes: https://github.com/gentoo/gentoo/pull/20526 Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Michael Mair-Keimberger levelnine.at> Signed-off-by: Conrad Kostecki gentoo.org> .../gnome-remote-desktop-0.1.9-copy-pixels.patch | 71 --- ...nome-remote-desktop-0.1.9-drop-vnc-frames.patch | 80 -- 2 files changed, 151 deletions(-) diff --git a/net-misc/gnome-remote-desktop/files/gnome-remote-desktop-0.1.9-copy-pixels.patch b/net-misc/gnome-remote-desktop/files/gnome-remote-desktop-0.1.9-copy-pixels.patch deleted file mode 100644 index 44cecbf6ad6..000 --- a/net-misc/gnome-remote-desktop/files/gnome-remote-desktop-0.1.9-copy-pixels.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 4d358762948dccdcac6d01f4dd7b8635e53de979 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Mon, 12 Oct 2020 17:34:30 +0200 -Subject: [PATCH] vnc: Copy pixels using the right destination stride - -We're copying the pixels in a separate thread managed by PipeWire, and -in this thread, accessing the VNC framebuffer dimension and stride is -racy. Instead of fetching the dimension directly, pass the expected -width and get the stride it will eventually have. - -Already before this patch, when the copied pixel end up on the main -thread and the dimension still doesn't match up, the frame will be -dropped. - src/grd-session-vnc.c | 5 +++-- - src/grd-session-vnc.h | 3 ++- - src/grd-vnc-pipewire-stream.c | 5 +++-- - 3 files changed, 8 insertions(+), 5 deletions(-) - -diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c -index a06d34d..ba3e5ce 100644 a/src/grd-session-vnc.c -+++ b/src/grd-session-vnc.c -@@ -519,9 +519,10 @@ check_rfb_password (rfbClientPtr rfb_client, - } - - int --grd_session_vnc_get_framebuffer_stride (GrdSessionVnc *session_vnc) -+grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc, -+ intwidth) - { -- return session_vnc->rfb_screen->paddedWidthInBytes; -+ return width * BGRX_BYTES_PER_PIXEL; - } - - static void -diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h -index 07678c8..ee1f986 100644 a/src/grd-session-vnc.h -+++ b/src/grd-session-vnc.h -@@ -55,7 +55,8 @@ void grd_session_vnc_move_cursor (GrdSessionVnc *session_vnc, - intx, - inty); - --int grd_session_vnc_get_framebuffer_stride (GrdSessionVnc *session_vnc); -+int grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc, -+ intwidth); - - gboolean grd_session_vnc_is_client_gone (GrdSessionVnc *session_vnc); - -diff --git a/src/grd-vnc-pipewire-stream.c b/src/grd-vnc-pipewire-stream.c -index 96dd7c9..82ceb9b 100644 a/src/grd-vnc-pipewire-stream.c -+++ b/src/grd-vnc-pipewire-stream.c -@@ -326,10 +326,11 @@ process_buffer (GrdVncPipeWireStream *stream, - int height; - int y; - -- src_stride = buffer->datas[0].chunk->stride; -- dst_stride = grd_session_vnc_get_framebuffer_stride (stream->session); - height = stream->spa_format.size.height; - width = stream->spa_format.size.width; -+ src_stride = buffer->datas[0].chunk->stride; -+ dst_stride = grd_session_vnc_get_stride_for_width (stream->session, -+ width); - - frame->data = g_malloc (height * dst_stride); - for (y = 0; y < height; y++) --- -GitLab - diff --git a/net-misc/gnome-remote-desktop/files/gnome-remote-desktop-0.1.9-drop-vnc-frames.patch b/net-misc/gnome-remote-desktop/files/gnome-remote-desktop-0.1.9-drop-vnc-frames.patch deleted file mode 100644 index 56ea75ff466..000 --- a/net-misc/gnome-remote-desktop/files/gnome-remote-desktop-0.1.9-drop-vnc-frames.patch +++ /dev/null @@ -1,80 +0,0 @@ -From ab97841629f5f3f4fab9993b6255b6ae04828b9c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Wed, 9 Sep 2020 10:14:20 +0200 -Subject: [PATCH] vnc: Drop frames if client is gone - -Frames from PipeWire are posted asynchronously from a I/O thread to the -main thread where they are turned into VNC frame updates and cursor -movements. On the other hand, sessions are closed asynchronously when -the VNC client disappears. If a frame ended up on the main thread after -a client disappeared but before the session and stream was closed, we'd -try to turn the new frames into VNC updates without a client being -available, causing use after free. - -Fix this by dropping frames
[gentoo-commits] repo/gentoo:master commit in: net-misc/gnome-remote-desktop/files/, net-misc/gnome-remote-desktop/
commit: f97b4fb02f83eafa9a794218a1e60a2ee823d7d4 Author: Yuri Konotopov gnome org> AuthorDate: Sun Sep 13 12:10:45 2020 + Commit: Matt Turner gentoo org> CommitDate: Fri Dec 18 21:40:22 2020 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f97b4fb0 net-misc/gnome-remote-desktop: version bump to 0.1.9 Closes: https://github.com/gentoo/gentoo/pull/17520 Signed-off-by: Yuri Konotopov gnome.org> Signed-off-by: Matt Turner gentoo.org> net-misc/gnome-remote-desktop/Manifest | 1 + .../gnome-remote-desktop-0.1.9-copy-pixels.patch | 71 +++ ...nome-remote-desktop-0.1.9-drop-vnc-frames.patch | 80 ++ .../gnome-remote-desktop-0.1.9.ebuild | 54 +++ 4 files changed, 206 insertions(+) diff --git a/net-misc/gnome-remote-desktop/Manifest b/net-misc/gnome-remote-desktop/Manifest index f16238544fb..c822985316d 100644 --- a/net-misc/gnome-remote-desktop/Manifest +++ b/net-misc/gnome-remote-desktop/Manifest @@ -1,2 +1,3 @@ DIST gnome-remote-desktop-0.1.7.tar.xz 25636 BLAKE2B 00e389bc8887c3d43f9221a45c6c7154e4140fab560c5c568fe92f06794b736efcf2265c763d0d9d57d5343dd2f71b7a3a2c45b0466cdae608f0a609af53175d SHA512 dd20e5e6fd724ff03d8a32319c7145f1fef4331439e52921b812f087e6b83185bf318bb2fb9758fe083ec3cfea30448b601da4ed1aba85fa892ef7fbb794b9ed DIST gnome-remote-desktop-0.1.8.tar.bz2 28565 BLAKE2B 8c14200eb17503eb92c7a7db51d487f17bca7616848aa8f555d2c31a5b758b500d6bbcb78a4a75cebbe0220281079848517c58813783497b463b0a771f07229b SHA512 1e433a95c303ce82782c27412c4f4456f0ecf33eb1e63b61b11f1cde68b6113a765a0f7d7871f73af8a253f1d7b3d3d4dafd36c3e5e9fa6d6c97279747f584ab +DIST gnome-remote-desktop-0.1.9.tar.xz 38040 BLAKE2B aac99424d9c11614f1fd3c9ce1ebe913212489b4c8f3cc22fe5d44b00483cba9cebae8974d221d81a1cbe3e53e85a24f2c5053714fb8b753ada1c034d031752c SHA512 6ac2962c824634cd5322785b6d251e899ea38668010b18b1b50124497895d9c00752904abf01490e27b74e1661aeae39d83fbbd77b841329b1e0fd381c3ea440 diff --git a/net-misc/gnome-remote-desktop/files/gnome-remote-desktop-0.1.9-copy-pixels.patch b/net-misc/gnome-remote-desktop/files/gnome-remote-desktop-0.1.9-copy-pixels.patch new file mode 100644 index 000..44cecbf6ad6 --- /dev/null +++ b/net-misc/gnome-remote-desktop/files/gnome-remote-desktop-0.1.9-copy-pixels.patch @@ -0,0 +1,71 @@ +From 4d358762948dccdcac6d01f4dd7b8635e53de979 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jonas=20=C3=85dahl?= +Date: Mon, 12 Oct 2020 17:34:30 +0200 +Subject: [PATCH] vnc: Copy pixels using the right destination stride + +We're copying the pixels in a separate thread managed by PipeWire, and +in this thread, accessing the VNC framebuffer dimension and stride is +racy. Instead of fetching the dimension directly, pass the expected +width and get the stride it will eventually have. + +Already before this patch, when the copied pixel end up on the main +thread and the dimension still doesn't match up, the frame will be +dropped. +--- + src/grd-session-vnc.c | 5 +++-- + src/grd-session-vnc.h | 3 ++- + src/grd-vnc-pipewire-stream.c | 5 +++-- + 3 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c +index a06d34d..ba3e5ce 100644 +--- a/src/grd-session-vnc.c b/src/grd-session-vnc.c +@@ -519,9 +519,10 @@ check_rfb_password (rfbClientPtr rfb_client, + } + + int +-grd_session_vnc_get_framebuffer_stride (GrdSessionVnc *session_vnc) ++grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc, ++ intwidth) + { +- return session_vnc->rfb_screen->paddedWidthInBytes; ++ return width * BGRX_BYTES_PER_PIXEL; + } + + static void +diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h +index 07678c8..ee1f986 100644 +--- a/src/grd-session-vnc.h b/src/grd-session-vnc.h +@@ -55,7 +55,8 @@ void grd_session_vnc_move_cursor (GrdSessionVnc *session_vnc, + intx, + inty); + +-int grd_session_vnc_get_framebuffer_stride (GrdSessionVnc *session_vnc); ++int grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc, ++ intwidth); + + gboolean grd_session_vnc_is_client_gone (GrdSessionVnc *session_vnc); + +diff --git a/src/grd-vnc-pipewire-stream.c b/src/grd-vnc-pipewire-stream.c +index 96dd7c9..82ceb9b 100644 +--- a/src/grd-vnc-pipewire-stream.c b/src/grd-vnc-pipewire-stream.c +@@ -326,10 +326,11 @@ process_buffer (GrdVncPipeWireStream *stream, + int height; + int y; + +- src_stride = buffer->datas[0].chunk->stride; +- dst_stride = grd_session_vnc_get_framebuffer_stride (stream->session); + height = stream->spa_format.size.height; + width = stream->spa_format.size.width; ++ src_stride = buffer->datas[0].chunk->stride; ++ dst_stride = grd_session_vnc_get_stride_for_width