message: Fix parse_dynamic_entries to stop iterating at DT_NULL
  Previously, parse_dynamic_entries iterates the entire dynamic segment.
  Ideally, it needs to only iterate dynamic section for dynamic entries.
  This fix uses DT_NULL, which marks end of dynamic section.
diff: @@ -1112,6 +1112,7 @@ void Parser::parse_dynamic_entries(uint64_t offset, uint64_t size) {
  Elf_Off dynamic_string_offset = this->get_dynamic_string_table();
  + bool end_of_dynamic_section = false;
  this->stream_->setpos(offset);
  for (size_t dynIdx = 0; dynIdx < nb_entries; ++dynIdx) {
  if (not this->stream_->can_read<Elf_Dyn>()) {
  @@ -1190,6 +1191,12 @@ void Parser::parse_dynamic_entries(uint64_t offset, uint64_t size) {
  break;
  }
  + case DYNAMIC_TAGS::DT_NULL:
  + {
  + end_of_dynamic_section = true;
  + break;
  + }
  +
  default:
  {
  dynamic_entry = std::unique_ptr<DynamicEntry>{new DynamicEntry{&entry}};
  @@ -1202,6 +1209,10 @@ void Parser::parse_dynamic_entries(uint64_t offset, uint64_t size) {
  LIEF_WARN("dynamic_entry is nullptr !");
  }
  + if (end_of_dynamic_section) {
  + break;
  + }
  +
  }
  // Check for INIT array
  