From 3a6ccfd335418efb614ec2145d7c75ada89d80cf Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 26 Jan 2025 22:15:50 -0800 Subject: [PATCH] Fix unlikely eassert failure in pgtk_enumerate_devices MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * src/pgtkterm.c (pgtk_enumerate_devices): Prefer make_formatted_string to snprintf + build_string + eassert, as it’s simpler and won’t crash Emacs if the eassert fails. (cherry picked from commit 901659bb7046bef4ca10490cf47644fb2bc6d753) --- src/pgtkterm.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/pgtkterm.c b/src/pgtkterm.c index 1f468300deb..dd85d622a62 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -158,8 +158,6 @@ pgtk_enumerate_devices (struct pgtk_display_info *dpyinfo, struct pgtk_device_t *rec; GList *all_seats, *devices_on_seat, *tem, *t1; GdkSeat *seat; - char printbuf[1026]; /* Believe it or not, some device names are - actually almost this long. */ block_input (); all_seats = gdk_display_list_seats (dpyinfo->gdpy); @@ -187,13 +185,10 @@ pgtk_enumerate_devices (struct pgtk_display_info *dpyinfo, rec = xmalloc (sizeof *rec); rec->seat = g_object_ref (seat); rec->device = GDK_DEVICE (t1->data); - - int len = snprintf (printbuf, sizeof printbuf, "%u:%s", - gdk_device_get_source (rec->device), - gdk_device_get_name (rec->device)); - eassert (len < sizeof printbuf); - - rec->name = build_string (printbuf); + rec->name = (make_formatted_string + ("%u:%s", + gdk_device_get_source (rec->device), + gdk_device_get_name (rec->device))); rec->next = dpyinfo->devices; dpyinfo->devices = rec; } -- 2.39.5