diff --git a/debian/patches/0007-demo-Fix-where-am-i-crash-on-32bits-platform.patch b/debian/patches/0007-demo-Fix-where-am-i-crash-on-32bits-platform.patch new file mode 100644 index 0000000000000000000000000000000000000000..6175ba9edbb138a20d7bfce2333e392d9fa5b7d4 --- /dev/null +++ b/debian/patches/0007-demo-Fix-where-am-i-crash-on-32bits-platform.patch @@ -0,0 +1,54 @@ +From fb3f1b103432d238339d8ae02c533e24133bc85e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Danis?= <frederic.danis@collabora.com> +Date: Fri, 7 Jan 2022 12:28:06 +0100 +Subject: [PATCH] demo: Fix where-am-i crash on 32bits platform +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +Call to where-am-i on 32bits platform ends up with following error: +*** stack smashing detected ***: terminated + +GTimeVal parameters are glong, which depends on the platform, but +timestamp returned by geoclue is guint64 for both seconds and useconds. +Furthermore GTimeVal is marked as deprecated. + +As this app only displays time with an accuracy in seconds, we can replace +g_date_time_new_from_timeval_local() by g_date_time_new_from_unix_local(). + +Signed-off-by: Frédéric Danis <frederic.danis@collabora.com> +--- + demo/where-am-i.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/demo/where-am-i.c b/demo/where-am-i.c +index 5934161..f8f6a43 100644 +--- a/demo/where-am-i.c ++++ b/demo/where-am-i.c +@@ -84,7 +84,6 @@ print_location (GClueSimple *simple) + GClueLocation *location; + gdouble altitude, speed, heading; + GVariant *timestamp; +- GTimeVal tv = { 0 }; + const char *desc; + + location = gclue_simple_get_location (simple); +@@ -112,10 +111,11 @@ print_location (GClueSimple *simple) + if (timestamp) { + GDateTime *date_time; + gchar *str; ++ guint64 secs; + +- g_variant_get (timestamp, "(tt)", &tv.tv_sec, &tv.tv_usec); ++ g_variant_get (timestamp, "(tt)", &secs, NULL); + +- date_time = g_date_time_new_from_timeval_local (&tv); ++ date_time = g_date_time_new_from_unix_local (secs); + str = g_date_time_format + (date_time, + "%c (%s seconds since the Epoch)"); +-- +2.25.1 + diff --git a/debian/patches/series b/debian/patches/series index ec781600477aed2e89baa7351e70c8340000ef15..4aaf17a09b838172bf89cd9494118f538bb26c1c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,3 +4,4 @@ 0004-service-Stop-the-client-for-system-applications-when.patch fix-nowifi-query.patch 0006-client-info-Support-cgroup-v2.patch +0007-demo-Fix-where-am-i-crash-on-32bits-platform.patch