[v6,13/25] Convert char array to std::string in linux_find_memory_regions_full

Message ID 20210322132120.1202230-14-luis.machado@linaro.org
State New
Headers show
Series
  • Memory Tagging Support + AArch64 Linux implementation
Related show

Commit Message

Simon Marchi via Gdb-patches March 22, 2021, 1:21 p.m.
Updates on v6:

- Fix formatting issues.

--

This is a quick cleanup that removes the use of fixed-length char arrays and
uses std::string instead.

gdb/ChangeLog:

YYYY-MM-DD  Luis Machado  <luis.machado@linaro.org>

	* linux-tdep.c (linux_find_memory_regions_full): Use std::string
	instead of char arrays.
---
 gdb/linux-tdep.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

-- 
2.25.1

Patch

diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index ab3402a41c2..17ed9cac8a7 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -1279,8 +1279,6 @@  linux_find_memory_regions_full (struct gdbarch *gdbarch,
 				linux_find_memory_region_ftype *func,
 				void *obfd)
 {
-  char mapsfilename[100];
-  char coredumpfilter_name[100];
   pid_t pid;
   /* Default dump behavior of coredump_filter (0x33), according to
      Documentation/filesystems/proc.txt from the Linux kernel
@@ -1298,10 +1296,12 @@  linux_find_memory_regions_full (struct gdbarch *gdbarch,
 
   if (use_coredump_filter)
     {
-      xsnprintf (coredumpfilter_name, sizeof (coredumpfilter_name),
-		 "/proc/%d/coredump_filter", pid);
+      std::string core_dump_filter_name
+	= string_printf ("/proc/%d/coredump_filter", pid);
+
       gdb::unique_xmalloc_ptr<char> coredumpfilterdata
-	= target_fileio_read_stralloc (NULL, coredumpfilter_name);
+	= target_fileio_read_stralloc (NULL, core_dump_filter_name.c_str ());
+
       if (coredumpfilterdata != NULL)
 	{
 	  unsigned int flags;
@@ -1311,14 +1311,16 @@  linux_find_memory_regions_full (struct gdbarch *gdbarch,
 	}
     }
 
-  xsnprintf (mapsfilename, sizeof mapsfilename, "/proc/%d/smaps", pid);
+  std::string maps_filename = string_printf ("/proc/%d/smaps", pid);
+
   gdb::unique_xmalloc_ptr<char> data
-    = target_fileio_read_stralloc (NULL, mapsfilename);
+    = target_fileio_read_stralloc (NULL, maps_filename.c_str ());
+
   if (data == NULL)
     {
       /* Older Linux kernels did not support /proc/PID/smaps.  */
-      xsnprintf (mapsfilename, sizeof mapsfilename, "/proc/%d/maps", pid);
-      data = target_fileio_read_stralloc (NULL, mapsfilename);
+      maps_filename = string_printf ("/proc/%d/maps", pid);
+      data = target_fileio_read_stralloc (NULL, maps_filename.c_str ());
     }
 
   if (data != NULL)
@@ -1378,7 +1380,8 @@  linux_find_memory_regions_full (struct gdbarch *gdbarch,
 
 	      if (sscanf (line, "%64s", keyword) != 1)
 		{
-		  warning (_("Error parsing {s,}maps file '%s'"), mapsfilename);
+		  warning (_("Error parsing {s,}maps file '%s'"),
+			   maps_filename.c_str ());
 		  break;
 		}
 
@@ -1399,7 +1402,7 @@  linux_find_memory_regions_full (struct gdbarch *gdbarch,
 		  if (sscanf (line, "%*s%lu", &number) != 1)
 		    {
 		      warning (_("Error parsing {s,}maps file '%s' number"),
-			       mapsfilename);
+			       maps_filename.c_str ());
 		      break;
 		    }
 		  if (number > 0)