From df5a4bd3a546613628d251202271ea2d10ba8608 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Sat, 10 Dec 2011 09:41:19 +0000 Subject: [PATCH] 2011-12-10 Hui Zhu * tracepoint.c (create_tsv_from_upload): Change sprintf to xstrprintf. --- gdb/ChangeLog | 4 ++++ gdb/tracepoint.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e29f5570827..704bbea0774 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2011-12-10 Hui Zhu + + * tracepoint.c (create_tsv_from_upload): Change sprintf to xstrprintf. + 2011-12-09 Andrey Smirnov * breakpoint.c (bp_loc_is_permanent): Rename `brk' to diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index e00538cc267..fa79d53a4bd 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -3482,31 +3482,39 @@ struct trace_state_variable * create_tsv_from_upload (struct uploaded_tsv *utsv) { const char *namebase; - char buf[20]; + char *buf; int try_num = 0; struct trace_state_variable *tsv; + struct cleanup *old_chain; if (utsv->name) { namebase = utsv->name; - sprintf (buf, "%s", namebase); + buf = xstrprintf ("%s", namebase); } else { namebase = "__tsv"; - sprintf (buf, "%s_%d", namebase, try_num++); + buf = xstrprintf ("%s_%d", namebase, try_num++); } /* Fish for a name that is not in use. */ /* (should check against all internal vars?) */ while (find_trace_state_variable (buf)) - sprintf (buf, "%s_%d", namebase, try_num++); + { + xfree (buf); + buf = xstrprintf ("%s_%d", namebase, try_num++); + } + + old_chain = make_cleanup (xfree, buf); /* We have an available name, create the variable. */ tsv = create_trace_state_variable (buf); tsv->initial_value = utsv->initial_value; tsv->builtin = utsv->builtin; + do_cleanups (old_chain); + return tsv; } -- 2.30.2