From: Luis Machado Date: Wed, 30 Dec 2020 13:46:11 +0000 (-0300) Subject: Convert char array to std::string in linux_find_memory_regions_full X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=93e447c605e549f183681ed60e729d3d50f4d113;p=binutils-gdb.git Convert char array to std::string in linux_find_memory_regions_full This is a quick cleanup that removes the use of fixed-length char arrays and uses std::string instead. gdb/ChangeLog: 2021-03-24 Luis Machado * linux-tdep.c (linux_find_memory_regions_full): Use std::string instead of char arrays. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2302c211367..da4bb26c21c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2021-03-24 Luis Machado + + * linux-tdep.c (linux_find_memory_regions_full): Use std::string + instead of char arrays. + 2021-03-24 Luis Machado * Makefile.in (ALL_64_TARGET_OBS): Add arch/aarch64-mte-linux.o. 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 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 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)