From eb2e73241ad065bac033c53e2775377b2c3faef1 Mon Sep 17 00:00:00 2001 From: Stefan Rueger Date: Sat, 11 Jul 2026 12:10:01 +0100 Subject: [PATCH] Copy const argument for modifications --- src/term.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/term.c b/src/term.c index 3a582328..73e0f8d2 100644 --- a/src/term.c +++ b/src/term.c @@ -1761,9 +1761,10 @@ static int cmd_config(const PROGRAMMER *pgm, const AVRPART *p, int argc, const c Part_FL fusel; // Copy of fuses and lock bits const Configvalue *vt; // Pointer to symbolic labels and associated values int nv; // Number of symbolic labels - Cnfg *cc; // Current configuration; cc[] and ct[] are parallel arrays - FL_item *fc; // Current fuse and lock bits memories + Cnfg *cc = NULL; // Current configuration; cc[] and ct[] are parallel arrays + FL_item *fc = NULL; // Current fuse and lock bits memories int nf = 0; // Number of involved fuse and lock bits memories + char *item = NULL; // Copy of argument memset(&fusel, 0, sizeof fusel); @@ -1787,6 +1788,7 @@ static int cmd_config(const PROGRAMMER *pgm, const AVRPART *p, int argc, const c cc = mmt_malloc(sizeof *cc*nc); fc = mmt_malloc(sizeof *fc*nc); + item = mmt_strdup(argc < 2? "*": argv[1]); AVRMEM *m = avr_locate_lock(p); const char *locktype = m? m->desc: "lock"; @@ -1816,8 +1818,6 @@ static int cmd_config(const PROGRAMMER *pgm, const AVRPART *p, int argc, const c fc[nf - 1].mask |= ct[i].mask; } - const char *item = argc < 2? "*": argv[1]; - char *rhs = strchr(item, '='); if(rhs) // Right-hand side of assignment @@ -1996,6 +1996,7 @@ static int cmd_config(const PROGRAMMER *pgm, const AVRPART *p, int argc, const c finished: mmt_free(cc); mmt_free(fc); + mmt_free(item); return ret; }