This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[pushed/ob] Fix gdb_xml_debug/gdb_xml_error ATTRIBUTE_PRINTF use


The declarations of gdb_xml_debug and gdb_xml_error are passing "0" as
"first-to-check" argument to ATTRIBUTE_PRINTF, as if they were va_args
functions.  Consequently, the arguments to gdb_xml_debug /
gdb_xml_error aren't being checked against the format strings.

With that fixed, a couple obvious bugs are exposed, both fixed by this
commit.

gdb/ChangeLog:
2017-03-27  Pedro Alves  <palves@redhat.com>

	* xml-support.h (gdb_xml_debug): Pass a "first-to-check" argument
	to ATTRIBUTE_PRINTF.
	* solib-target.c (library_list_start_list): Print "string" not
	"version".
	* xml-tdesc.c (tdesc_start_field): Pass "field_name" to
	gdb_xml_error call.
---
 gdb/ChangeLog      | 9 +++++++++
 gdb/solib-target.c | 2 +-
 gdb/xml-support.h  | 4 ++--
 gdb/xml-tdesc.c    | 4 ++--
 4 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 82213e8..b4d995a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
 2017-03-27  Pedro Alves  <palves@redhat.com>
 
+	* xml-support.h (gdb_xml_debug): Pass a "first-to-check" argument
+	to ATTRIBUTE_PRINTF.
+	* solib-target.c (library_list_start_list): Print "string" not
+	"version".
+	* xml-tdesc.c (tdesc_start_field): Pass "field_name" to
+	gdb_xml_error call.
+
+2017-03-27  Pedro Alves  <palves@redhat.com>
+
 	* dwarf2read.c (struct file_and_directory): New.
 	(dwarf2_get_dwz_file): Adjust to use std::string.
 	(dw2_get_file_names_reader): Adjust to use file_and_directory.
diff --git a/gdb/solib-target.c b/gdb/solib-target.c
index 1577e31..1b10e4e 100644
--- a/gdb/solib-target.c
+++ b/gdb/solib-target.c
@@ -159,7 +159,7 @@ library_list_start_list (struct gdb_xml_parser *parser,
       if (strcmp (string, "1.0") != 0)
 	gdb_xml_error (parser,
 		       _("Library list has unsupported version \"%s\""),
-		       version);
+		       string);
     }
 }
 
diff --git a/gdb/xml-support.h b/gdb/xml-support.h
index 9d4e29f..de685e2 100644
--- a/gdb/xml-support.h
+++ b/gdb/xml-support.h
@@ -200,13 +200,13 @@ int gdb_xml_parse_quick (const char *name, const char *dtd_name,
 /* Issue a debugging message from one of PARSER's handlers.  */
 
 void gdb_xml_debug (struct gdb_xml_parser *parser, const char *format, ...)
-     ATTRIBUTE_PRINTF (2, 0);
+  ATTRIBUTE_PRINTF (2, 3);
 
 /* Issue an error message from one of PARSER's handlers, and stop
    parsing.  */
 
 void gdb_xml_error (struct gdb_xml_parser *parser, const char *format, ...)
-     ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 0);
+  ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3);
 
 /* Find the attribute named NAME in the set of parsed attributes
    ATTRIBUTES.  Returns NULL if not found.  */
diff --git a/gdb/xml-tdesc.c b/gdb/xml-tdesc.c
index effe652..d24c5ad 100644
--- a/gdb/xml-tdesc.c
+++ b/gdb/xml-tdesc.c
@@ -413,8 +413,8 @@ tdesc_start_field (struct gdb_xml_parser *parser,
 	gdb_xml_error (parser, _("Bitfield \"%s\" has start after end"),
 		       field_name);
       if (end >= data->current_type_size * TARGET_CHAR_BIT)
-	gdb_xml_error (parser,
-		       _("Bitfield \"%s\" does not fit in struct"));
+	gdb_xml_error (parser, _("Bitfield \"%s\" does not fit in struct"),
+		       field_name);
 
       if (field_type != NULL)
 	tdesc_add_typed_bitfield (t, field_name, start, end, field_type);
-- 
2.5.5


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]