From 47d70ab78d0c136df4fcc4ddda1174ae75a7d624 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Wed, 29 Apr 2026 11:25:56 +0700 Subject: [PATCH] gadget: stringshare gadcon id instead of static buffer A static char[128] returned from _gc_id_new is overwritten on every call, so multiple gadget instances would alias the same id once gadcon compares or stores it. eina_stringshare_add gives each instance its own stable id. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/e_mod_gadget.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/e_mod_gadget.c b/src/e_mod_gadget.c index 45d278f..e3036d4 100644 --- a/src/e_mod_gadget.c +++ b/src/e_mod_gadget.c @@ -259,10 +259,10 @@ _gc_icon(const E_Gadcon_Client_Class *cc EINA_UNUSED, Evas *evas) static const char * _gc_id_new(const E_Gadcon_Client_Class *cc) { - static char buf[128]; + char buf[128]; snprintf(buf, sizeof(buf), "%s.%d", cc->name, eina_list_count(_instances) + 1); - return buf; + return eina_stringshare_add(buf); } static const E_Gadcon_Client_Class _gadcon_class =