This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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]

Re: [PATCH] GOLD/DWP: avoid segmentation fault for binaries without debug fission


Thanks,  updated the patch as follows.

diff --git a/binutils-2.25/gold/dwp.cc b/binutils-2.25/gold/dwp.cc
index 121f37b..9eef68a 100644
--- a/binutils-2.25/gold/dwp.cc
+++ b/binutils-2.25/gold/dwp.cc
@@ -2427,6 +2427,10 @@ main(int argc, char** argv)
   if (exe_filename == NULL && files.empty())
     gold_fatal(_("no input files and no executable specified"));

+  // If there are no DWO files, there is nothing to do.
+  if (files.empty())
+    return EXIT_SUCCESS;
+
   if (verify_only)
     {
       // Get list of DWO files in the DWP file and compare with

On Tue, May 17, 2016 at 10:02 AM, Sriraman Tallam <tmsriram@google.com> wrote:
> On Mon, May 16, 2016 at 4:56 PM, Yunlian Jiang <yunlian@google.com> wrote:
>> If run dwp command on a binary built without debug fission, it will
>> cause segmentation
>> fault. This patch fixes that by exit early if no DWO files information
>> found inside the
>> input binary.
>>
>>     gold/
>>     * dwp.cc: (main): exit early when no DWO files information found
>> in the input binary.
>>
>> diff --git a/gold/dwp.cc b/gold/dwp.cc
>> index d8c39c6..c26f969 100644
>> --- a/gold/dwp.cc
>> +++ b/gold/dwp.cc
>> @@ -2436,6 +2436,11 @@ main(int argc, char** argv)
>>        return ok ? EXIT_SUCCESS : EXIT_FAILURE;
>>      }
>>
>> +  // If there is no DWO files information found in the input binary,
>> +  // return early to avoid segmentation fault.
>
> Change the comment to maybe "If there are no DWO files, there is
> nothing to do."
>
>> +  if (files.size() == 0)
>> +    return EXIT_SUCCESS;
>> +
>
> This looks fine to me but I do not have permissions to approve.
>
> Thanks
> Sri
>
>>    // Process each file, adding its contents to the output file.
>>    Dwp_output_file output_file(output_filename.c_str());
>>    for (File_list::const_iterator f = files.begin(); f != files.end(); ++f)


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