ARI fixes: Avoid sprintf function use rule.
authorPierre Muller <muller@sourceware.org>
Tue, 13 Nov 2012 09:46:11 +0000 (09:46 +0000)
committerPierre Muller <muller@sourceware.org>
Tue, 13 Nov 2012 09:46:11 +0000 (09:46 +0000)
* charset.c (convert_between_encodings): Use xsnprintf.
* cli-out.c (cli_field_int): Likewise.
* cp-namespace.c (cp_lookup_nested_symbol): Likewise.
* expprint.c (op_name_standard): Likewise.
* frv-tdep.c (set_variant_num_gprs): Likewise.
(set_variant_num_fprs): Likewise.
* m68hc11-tdep.c (m68hc11_initialize_register_info): Likewise.
* nto-tdep.c (nto_find_and_open_solib): Likewise.
(nto_init_solib_absolute_prefix): Likewise.
* source.c (init_source_path): Likewise.
(print_source_lines_base): Likewise.
* valprint.c (print_wchar): Likewise.
* mi/mi-out.c (mi_field_int): Likewise.
windows-nat.c (windows_pid_to_exec_file): Likewise.
(windows_create_inferior): Likewise.
(_initialize_check_for_gdb_ini): Likewise.

12 files changed:
gdb/ChangeLog
gdb/charset.c
gdb/cli-out.c
gdb/cp-namespace.c
gdb/expprint.c
gdb/frv-tdep.c
gdb/m68hc11-tdep.c
gdb/mi/mi-out.c
gdb/nto-tdep.c
gdb/source.c
gdb/valprint.c
gdb/windows-nat.c

index 250a25599bb24f4690c918dbdf228461e2931642..c988862c294035f08aa90a75206e9f37e5dcb324 100644 (file)
@@ -1,3 +1,23 @@
+2012-11-13  Pierre Muller  <muller@sourceware.org>
+
+       ARI fixes: Avoid sprintf function use rule.
+       * charset.c (convert_between_encodings): Use xsnprintf.
+       * cli-out.c (cli_field_int): Likewise.
+       * cp-namespace.c (cp_lookup_nested_symbol): Likewise.
+       * expprint.c (op_name_standard): Likewise.
+       * frv-tdep.c (set_variant_num_gprs): Likewise.
+       (set_variant_num_fprs): Likewise.
+       * m68hc11-tdep.c (m68hc11_initialize_register_info): Likewise.
+       * nto-tdep.c (nto_find_and_open_solib): Likewise.
+       (nto_init_solib_absolute_prefix): Likewise.
+       * source.c (init_source_path): Likewise.
+       (print_source_lines_base): Likewise.
+       * valprint.c (print_wchar): Likewise.
+       * mi/mi-out.c (mi_field_int): Likewise.
+       windows-nat.c (windows_pid_to_exec_file): Likewise.
+       (windows_create_inferior): Likewise.
+       (_initialize_check_for_gdb_ini): Likewise.
+
 2012-11-12  Joel Brobecker  <brobecker@adacore.com>
 
        * frame.h (deprecated_frame_register_read): Renames
index 89baf461f4a0b684efae74f6533e2717362af90c..777d901e2696f09a752bc081d5715ec708d7eb87 100644 (file)
@@ -531,7 +531,7 @@ convert_between_encodings (const char *from, const char *to,
                  {
                    char octal[5];
 
-                   sprintf (octal, "\\%.3o", *inp & 0xff);
+                   xsnprintf (octal, sizeof (octal), "\\%.3o", *inp & 0xff);
                    obstack_grow_str (output, octal);
 
                    ++inp;
index 925206c5353973e5c5b902dd12f72ae195141909..540403609bb572ccd02479e75195706099029e10 100644 (file)
@@ -139,7 +139,7 @@ cli_field_int (struct ui_out *uiout, int fldno, int width,
 
   if (data->suppress_output)
     return;
-  sprintf (buffer, "%d", value);
+  xsnprintf (buffer, sizeof (buffer), "%d", value);
 
   /* Always go through the function pointer (virtual function call).
      We may have been extended.  */
index e2291a9938f9118a937d21e67465b0649a4659e1..1a694023b9e7c490c0a98f2accd94a4ca9a5a256 100644 (file)
@@ -688,6 +688,7 @@ cp_lookup_nested_symbol (struct type *parent_type,
           just like members of namespaces; in particular,
           lookup_symbol_namespace works when looking them up.  */
 
+       int size;
        const char *parent_name = type_name_no_tag_or_error (saved_parent_type);
        struct symbol *sym
          = cp_lookup_symbol_in_namespace (parent_name, nested_name,
@@ -703,9 +704,9 @@ cp_lookup_nested_symbol (struct type *parent_type,
           namespace seach is is already not C++ compliant and more
           assumptions could make it too magic.  */
 
-       concatenated_name = alloca (strlen (parent_name) + 2
-                                   + strlen (nested_name) + 1);
-       sprintf (concatenated_name, "%s::%s",
+       size = strlen (parent_name) + 2 + strlen (nested_name) + 1;
+       concatenated_name = alloca (size);
+       xsnprintf (concatenated_name, size, "%s::%s",
                 parent_name, nested_name);
        sym = lookup_static_symbol_aux (concatenated_name, VAR_DOMAIN);
        if (sym != NULL)
index 129dfa70b0b7a9f4901d77dc066b3635ebf748c8..c8eef5e9c9143e501ba83b8232cc6ff36e6ee224 100644 (file)
@@ -670,7 +670,7 @@ op_name_standard (enum exp_opcode opcode)
       {
        static char buf[30];
 
-       sprintf (buf, "<unknown %d>", opcode);
+       xsnprintf (buf, sizeof (buf), "<unknown %d>", opcode);
        return buf;
       }
 #define OP(name)       \
index 9262b103aa8d789ff26d0005b0a7beee5570e276..28151f658c94cb08950331872e00188ea5b07dbe 100644 (file)
@@ -233,7 +233,7 @@ set_variant_num_gprs (struct gdbarch_tdep *var, int num_gprs)
     {
       char buf[20];
 
-      sprintf (buf, "gr%d", r);
+      xsnprintf (buf, sizeof (buf), "gr%d", r);
       var->register_names[first_gpr_regnum + r] = xstrdup (buf);
     }
 }
@@ -252,7 +252,7 @@ set_variant_num_fprs (struct gdbarch_tdep *var, int num_fprs)
     {
       char buf[20];
 
-      sprintf (buf, "fr%d", r);
+      xsnprintf (buf, sizeof (buf), "fr%d", r);
       var->register_names[first_fpr_regnum + r] = xstrdup (buf);
     }
 }
index ff4cb99895bf1ca9f879ff13a3958809d2c67d87..0b01387279d380e2e685d75b8c31fc20159cbdb9 100644 (file)
@@ -247,7 +247,7 @@ m68hc11_initialize_register_info (void)
     {
       char buf[10];
 
-      sprintf (buf, "_.d%d", i - SOFT_D1_REGNUM + 1);
+      xsnprintf (buf, sizeof (buf), "_.d%d", i - SOFT_D1_REGNUM + 1);
       m68hc11_get_register_info (&soft_regs[i], buf);
     }
 
index b39e05a3f659c6098589846fbad2775b8cc5c367..9f2205c4529f66ae37866923a32b00e849342913 100644 (file)
@@ -198,7 +198,7 @@ mi_field_int (struct ui_out *uiout, int fldno, int width,
   if (data->suppress_output)
     return;
 
-  sprintf (buffer, "%d", value);
+  xsnprintf (buffer, sizeof (buffer), "%d", value);
   mi_field_string (uiout, fldno, width, alignment, fldname, buffer);
 }
 
index 7c4894638c749041b82fea47ff3294cc5cbb283d..dff87bbf96183b074d19057d30d69ef9e26e78f4 100644 (file)
@@ -89,7 +89,7 @@ nto_find_and_open_solib (char *solib, unsigned o_flags, char **temp_pathname)
   char *buf, *arch_path, *nto_root, *endian;
   const char *base;
   const char *arch;
-  int ret;
+  int arch_len, len, ret;
 #define PATH_FMT \
   "%s/lib:%s/usr/lib:%s/usr/photon/lib:%s/usr/photon/dll:%s/lib/dll"
 
@@ -116,20 +116,22 @@ nto_find_and_open_solib (char *solib, unsigned o_flags, char **temp_pathname)
 
   /* In case nto_root is short, add strlen(solib)
      so we can reuse arch_path below.  */
-  arch_path =
-    alloca (strlen (nto_root) + strlen (arch) + strlen (endian) + 2 +
-           strlen (solib));
-  sprintf (arch_path, "%s/%s%s", nto_root, arch, endian);
 
-  buf = alloca (strlen (PATH_FMT) + strlen (arch_path) * 5 + 1);
-  sprintf (buf, PATH_FMT, arch_path, arch_path, arch_path, arch_path,
-          arch_path);
+  arch_len = (strlen (nto_root) + strlen (arch) + strlen (endian) + 2
+             + strlen (solib));
+  arch_path = alloca (arch_len);
+  xsnprintf (arch_path, arch_len, "%s/%s%s", nto_root, arch, endian);
+
+  len = strlen (PATH_FMT) + strlen (arch_path) * 5 + 1;
+  buf = alloca (len);
+  xsnprintf (buf, len, PATH_FMT, arch_path, arch_path, arch_path, arch_path,
+            arch_path);
 
   base = lbasename (solib);
   ret = openp (buf, 1, base, o_flags, temp_pathname);
   if (ret < 0 && base != solib)
     {
-      sprintf (arch_path, "/%s", solib);
+      xsnprintf (arch_path, arch_len, "/%s", solib);
       ret = open (arch_path, o_flags, 0);
       if (temp_pathname)
        {
@@ -170,9 +172,9 @@ nto_init_solib_absolute_prefix (void)
               == BFD_ENDIAN_BIG ? "be" : "le";
     }
 
-  sprintf (arch_path, "%s/%s%s", nto_root, arch, endian);
+  xsnprintf (arch_path, sizeof (arch_path), "%s/%s%s", nto_root, arch, endian);
 
-  sprintf (buf, "set solib-absolute-prefix %s", arch_path);
+  xsnprintf (buf, sizeof (buf), "set solib-absolute-prefix %s", arch_path);
   execute_command (buf, 0);
 }
 
index 9813c43faa1fc27733efea383829677aaa8cefac..c05822e46879cdc205cb686aa9434db1405a5f86 100644 (file)
@@ -384,7 +384,7 @@ init_source_path (void)
 {
   char buf[20];
 
-  sprintf (buf, "$cdir%c$cwd", DIRNAME_SEPARATOR);
+  xsnprintf (buf, sizeof (buf), "$cdir%c$cwd", DIRNAME_SEPARATOR);
   source_path = xstrdup (buf);
   forget_cached_source_info ();
 }
@@ -1292,8 +1292,10 @@ print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
 
       if (!noerror)
        {
-         char *name = alloca (strlen (s->filename) + 100);
-         sprintf (name, "%d\t%s", line, s->filename);
+         int len = strlen (s->filename) + 100;
+         char *name = alloca (len);
+
+         xsnprintf (name, len, "%d\t%s", line, s->filename);
          print_sys_errmsg (name, errno);
        }
       else
@@ -1344,13 +1346,13 @@ print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
       if (c == EOF)
        break;
       last_line_listed = current_source_line;
-      sprintf (buf, "%d\t", current_source_line++);
+      xsnprintf (buf, sizeof (buf), "%d\t", current_source_line++);
       ui_out_text (uiout, buf);
       do
        {
          if (c < 040 && c != '\t' && c != '\n' && c != '\r')
            {
-             sprintf (buf, "^%c", c + 0100);
+             xsnprintf (buf, sizeof (buf), "^%c", c + 0100);
              ui_out_text (uiout, buf);
            }
          else if (c == 0177)
@@ -1367,7 +1369,7 @@ print_source_lines_base (struct symtab *s, int line, int stopline, int noerror)
            }
          else
            {
-             sprintf (buf, "%c", c);
+             xsnprintf (buf, sizeof (buf), "%c", c);
              ui_out_text (uiout, buf);
            }
        }
index 8600be03dce2fdb0d68fa8aede7bca546df0845c..8fe122437430ff3db4d63a29e8f3b44019c2aa8a 100644 (file)
@@ -1974,9 +1974,10 @@ print_wchar (gdb_wint_t w, const gdb_byte *orig,
                /* If the value fits in 3 octal digits, print it that
                   way.  Otherwise, print it as a hex escape.  */
                if (value <= 0777)
-                 sprintf (octal, "\\%.3o", (int) (value & 0777));
+                 xsnprintf (octal, sizeof (octal), "\\%.3o",
+                            (int) (value & 0777));
                else
-                 sprintf (octal, "\\x%lx", (long) value);
+                 xsnprintf (octal, sizeof (octal), "\\x%lx", (long) value);
                append_string_as_wide (octal, output);
              }
            /* If we somehow have extra bytes, print them now.  */
@@ -1984,7 +1985,7 @@ print_wchar (gdb_wint_t w, const gdb_byte *orig,
              {
                char octal[5];
 
-               sprintf (octal, "\\%.3o", orig[i] & 0xff);
+               xsnprintf (octal, sizeof (octal), "\\%.3o", orig[i] & 0xff);
                append_string_as_wide (octal, output);
                ++i;
              }
index a8766cd5500a43de0980e16968a24fb3ecdefc38..75831d821c346e82882e857896f3b69c1833762e 100644 (file)
@@ -1895,7 +1895,8 @@ windows_pid_to_exec_file (int pid)
   /* Try to find exe name as symlink target of /proc/<pid>/exe.  */
   int nchars;
   char procexe[sizeof ("/proc/4294967295/exe")];
-  sprintf (procexe, "/proc/%u/exe", pid);
+
+  xsnprintf (procexe, sizeof (procexe), "/proc/%u/exe", pid);
   nchars = readlink (procexe, path, sizeof(path));
   if (nchars > 0 && nchars < sizeof (path))
     {
@@ -2093,10 +2094,10 @@ windows_create_inferior (struct target_ops *ops, char *exec_file,
       cygallargs = (wchar_t *) alloca (len * sizeof (wchar_t));
       swprintf (cygallargs, len, L" -c 'exec %s %s'", exec_file, allargs);
 #else
-      cygallargs = (char *)
-       alloca (sizeof (" -c 'exec  '") + strlen (exec_file)
-                                   + strlen (allargs) + 2);
-      sprintf (cygallargs, " -c 'exec %s %s'", exec_file, allargs);
+      len = (sizeof (" -c 'exec  '") + strlen (exec_file)
+            + strlen (allargs) + 2);
+      cygallargs = (char *) alloca (len);
+      xsnprintf (cygallargs, len, " -c 'exec %s %s'", exec_file, allargs);
 #endif
       toexec = shell;
       flags |= DEBUG_PROCESS;
@@ -2724,8 +2725,9 @@ _initialize_check_for_gdb_ini (void)
        {
          int len = strlen (oldini);
          char *newini = alloca (len + 1);
-         sprintf (newini, "%.*s.gdbinit",
-           (int) (len - (sizeof ("gdb.ini") - 1)), oldini);
+
+         xsnprintf (newini, len + 1, "%.*s.gdbinit",
+                    (int) (len - (sizeof ("gdb.ini") - 1)), oldini);
          warning (_("obsolete '%s' found. Rename to '%s'."), oldini, newini);
        }
     }