aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/ada-exp.y2
-rw-r--r--gdb/ada-lang.c19
3 files changed, 20 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7e40385..59c7470 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2009-04-14 Pierre Muller <muller@ics.u-strasbg.fr>
+
+ ARI fix: sprintf rule.
+ * ada-exp.y (convert_char_literal): Replace sprintf by xsnprintf.
+ * ada-lang.c (add_angle_brackets): Use xstrprintf.
+ (ada_decode): Replace sprintf by xsnprintf.
+ (find_old_style_renaming_symbol): Ditto.
+ (ada_to_fixed_type_1, ada_enum_name): Ditto.
+
+
2009-04-14 Joel Brobecker <brobecker@adacore.com>
* target.c (target_mourn_inferior): Call bfd_cache_close_all
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index ee0fcf3..1d3c619 100644
--- a/gdb/ada-exp.y
+++ b/gdb/ada-exp.y
@@ -1452,7 +1452,7 @@ convert_char_literal (struct type *type, LONGEST val)
if (type == NULL || TYPE_CODE (type) != TYPE_CODE_ENUM)
return val;
- sprintf (name, "QU%02x", (int) val);
+ xsnprintf (name, sizeof (name), "QU%02x", (int) val);
for (f = 0; f < TYPE_NFIELDS (type); f += 1)
{
if (strcmp (name, TYPE_FIELD_NAME (type, f)) == 0)
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 6fa4cfa..54f2590 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -337,9 +337,7 @@ add_angle_brackets (const char *str)
static char *result = NULL;
xfree (result);
- result = (char *) xmalloc ((strlen (str) + 3) * sizeof (char));
-
- sprintf (result, "<%s>", str);
+ result = xstrprintf ("<%s>", str);
return result;
}
@@ -1114,7 +1112,7 @@ Suppress:
if (encoded[0] == '<')
strcpy (decoded, encoded);
else
- sprintf (decoded, "<%s>", encoded);
+ xsnprintf (decoded, decoding_buffer_size, "<%s>", encoded);
return decoded;
}
@@ -6609,13 +6607,14 @@ find_old_style_renaming_symbol (const char *name, struct block *block)
function_name = function_name + 5;
rename = (char *) alloca (rename_len * sizeof (char));
- sprintf (rename, "%s__%s___XR", function_name, name);
+ xsnprintf (rename, rename_len * sizeof (char), "%s__%s___XR",
+ function_name, name);
}
else
{
const int rename_len = strlen (name) + 6;
rename = (char *) alloca (rename_len * sizeof (char));
- sprintf (rename, "%s___XR", name);
+ xsnprintf (rename, rename_len * sizeof (char), "%s___XR", name);
}
return ada_find_any_symbol (rename);
@@ -7308,7 +7307,7 @@ ada_to_fixed_type_1 (struct type *type, const gdb_byte *valaddr,
int xvz_found = 0;
LONGEST size;
- sprintf (xvz_name, "%s___XVZ", name);
+ xsnprintf (xvz_name, strlen (name) + 7, "%s___XVZ", name);
size = get_int_var_value (xvz_name, &xvz_found);
if (xvz_found && TYPE_LENGTH (fixed_record_type) != size)
{
@@ -7760,11 +7759,11 @@ ada_enum_name (const char *name)
GROW_VECT (result, result_len, 16);
if (isascii (v) && isprint (v))
- sprintf (result, "'%c'", v);
+ xsnprintf (result, result_len, "'%c'", v);
else if (name[1] == 'U')
- sprintf (result, "[\"%02x\"]", v);
+ xsnprintf (result, result_len, "[\"%02x\"]", v);
else
- sprintf (result, "[\"%04x\"]", v);
+ xsnprintf (result, result_len, "[\"%04x\"]", v);
return result;
}