From: Roland McGrath Date: Thu, 1 Oct 2009 20:59:53 +0000 (-0700) Subject: Add missing C++ error check on dwarf_formstring calls. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b675498f978165500862bea2e537e9f1865eb5dd;p=thirdparty%2Felfutils.git Add missing C++ error check on dwarf_formstring calls. --- diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 0259370d9..b4899d1db 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,9 @@ +2009-10-01 Roland McGrath + + * c++/line_info.cc (dwarf::source_file::name): Check for failure + return from dwarf_formstring. + (dwarf::source_file::to_string): Likewise. + 2009-09-30 Roland McGrath * c++/dwarf_tracker (dwarf_path_finder::walk::jump): New method. diff --git a/libdw/c++/line_info.cc b/libdw/c++/line_info.cc index 676f81ff6..b913da626 100644 --- a/libdw/c++/line_info.cc +++ b/libdw/c++/line_info.cc @@ -121,14 +121,16 @@ dwarf::source_file::size () const const char * dwarf::source_file::name () const { + const char *result; if (stringform (thisattr ())) - return dwarf_formstring (thisattr ()); - - Dwarf_Files *files; - Dwarf_Word idx; - xif (thisattr (), get_files (thisattr (), &files, &idx)); - - const char *result = dwarf_filesrc (files, idx, NULL, NULL); + result = dwarf_formstring (thisattr ()); + else + { + Dwarf_Files *files; + Dwarf_Word idx; + xif (thisattr (), get_files (thisattr (), &files, &idx)); + result = dwarf_filesrc (files, idx, NULL, NULL); + } xif (thisattr (), result == NULL); return result; } @@ -136,14 +138,21 @@ dwarf::source_file::name () const static inline string plain_string (const char *filename) { - return string ("\"") + filename + "\""; + string result ("\""); + result += filename; + result += "\""; + return result; } string dwarf::source_file::to_string () const { if (stringform (thisattr ())) - return plain_string (dwarf_formstring (thisattr ())); + { + const char *result = dwarf_formstring (thisattr ()); + xif (thisattr (), result == NULL); + return plain_string (result); + } Dwarf_Files *files; Dwarf_Word idx;