[packages/greetd-greeter-gtkgreet] upstream fixes for 32bit platforms
atler
atler at pld-linux.org
Fri Feb 18 19:55:44 CET 2022
commit beaf59ab28c36e31da9736ee829bca6b7158d7d9
Author: Jan Palus <atler at pld-linux.org>
Date: Fri Feb 18 19:55:28 2022 +0100
upstream fixes for 32bit platforms
32bit.patch | 73 ++++++++++++++++++++++++++++++++++++++++++++
greetd-greeter-gtkgreet.spec | 2 ++
2 files changed, 75 insertions(+)
---
diff --git a/greetd-greeter-gtkgreet.spec b/greetd-greeter-gtkgreet.spec
index ee4d165..99b1420 100644
--- a/greetd-greeter-gtkgreet.spec
+++ b/greetd-greeter-gtkgreet.spec
@@ -6,6 +6,7 @@ License: MIT
Group: Applications
Source0: https://git.sr.ht/~kennylevinsen/gtkgreet/archive/%{version}.tar.gz
# Source0-md5: f027ae4d4e63130cf349fdecb96afbad
+Patch0: 32bit.patch
URL: https://git.sr.ht/~kennylevinsen/gtkgreet
BuildRequires: gtk+3-devel
BuildRequires: gtk-layer-shell-devel
@@ -24,6 +25,7 @@ GTK based greeter for greetd, to be run under cage or similar.
%prep
%setup -q -n gtkgreet-%{version}
+%patch0 -p1
%build
%meson build
diff --git a/32bit.patch b/32bit.patch
new file mode 100644
index 0000000..3ad6255
--- /dev/null
+++ b/32bit.patch
@@ -0,0 +1,73 @@
+From b8218e3fae78fc9977fa867a121ae11b2ab35d4e Mon Sep 17 00:00:00 2001
+From: Kenny Levinsen <kl at kl.wtf>
+Date: Sat, 27 Feb 2021 14:47:46 +0100
+Subject: [PATCH] proto: Fix signed-ness error
+
+---
+ gtkgreet/proto.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gtkgreet/proto.c b/gtkgreet/proto.c
+index 9261949..cd582bd 100644
+--- a/gtkgreet/proto.c
++++ b/gtkgreet/proto.c
+@@ -21,7 +21,7 @@ struct header {
+
+ static int write_req(int fd, struct json_object* req) {
+ const char* reqstr = json_object_get_string(req);
+- uint32_t len = strlen(reqstr);
++ ssize_t len = (ssize_t)strlen(reqstr);
+ char* headerp = (char*)&len;
+ ssize_t off = 0;
+
+--
+2.32.0
+
+From 3471aaaaee4619fd4aded85803b27b4a8dff41a6 Mon Sep 17 00:00:00 2001
+From: Ryan Farley <ryan.farley at gmx.com>
+Date: Thu, 25 Mar 2021 00:35:23 -0500
+Subject: [PATCH] proto: use uint32_t offsets and message lengths
+
+As the protocol imposes a hard 32-bit limit on message size, and the
+affected functions' offset value can never go negative, just use
+uint32_t for the lot. Fully fixes the signedness errors partially
+corrected in b8218e3fae78fc9977fa867a121ae11b2ab35d4e while avoiding
+the possibility of silent truncation (either through an overlong
+message or running on a big-endian host).
+---
+ gtkgreet/proto.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/gtkgreet/proto.c b/gtkgreet/proto.c
+index cd582bd..a527e85 100644
+--- a/gtkgreet/proto.c
++++ b/gtkgreet/proto.c
+@@ -21,9 +21,13 @@ struct header {
+
+ static int write_req(int fd, struct json_object* req) {
+ const char* reqstr = json_object_get_string(req);
+- ssize_t len = (ssize_t)strlen(reqstr);
+- char* headerp = (char*)&len;
+- ssize_t off = 0;
++ size_t len = strlen(reqstr);
++ if (len > 0xFFFFFFFF) {
++ goto error;
++ }
++ uint32_t header = len;
++ char* headerp = (char*)&header;
++ uint32_t off = 0;
+
+ while (off < 4) {
+ ssize_t n = write(fd, &headerp[off], 4-off);
+@@ -51,7 +55,7 @@ static struct json_object* read_resp(int fd) {
+ struct json_object* resp = NULL;
+ char *respstr = NULL;
+ uint32_t len;
+- ssize_t off = 0;
++ uint32_t off = 0;
+
+ while (off < 4) {
+ char* headerp = (char*)&len;
+--
+2.32.0
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/greetd-greeter-gtkgreet.git/commitdiff/beaf59ab28c36e31da9736ee829bca6b7158d7d9
More information about the pld-cvs-commit
mailing list