* elf-attrs.c (_bfd_elf_parse_attributes): Break out of loop if
	subsection length is too small to cover tag and length field.
+2021-06-02  Alan Modra  <amodra@gmail.com>
+
+       * elf-attrs.c (_bfd_elf_parse_attributes): Break out of loop if
+       subsection length is too small to cover tag and length field.
+
 2021-05-31  Nelson Chu  <nelson.chu@sifive.com>
            Lifang Xia  <lifang_xia@c-sky.com>
 
 
                }
              else
                {
-                 subsection_len = 0;
                  p = p_end;
+                 break;
                }
-             if (subsection_len == 0)
-               break;
              if (subsection_len > section_len)
                subsection_len = section_len;
              section_len -= subsection_len;
              end = orig_p + subsection_len;
+             if (end < p)
+               break;
              switch (tag)
                {
                case Tag_File: