+2015-04-13  Doug Evans  <dje@google.com>
+
+       PR binutils/18218
+       * readelf.c (printable_section_name): Constify sec argument.
+       (apply_relocations): Ditto.  New arg "size".  All callers updated.
+       (load_specific_debug_section): Constify sec argument.
+       Remove side-effect of modifying sec->sh_size.
+
 2015-04-09  H.J. Lu  <hongjiu.lu@intel.com>
 
        * objcopy.c (do_debug_sections): Use bit patterns.
 
    to print multibyte characters, it just interprets them as hex values.  */
 
 static const char *
-printable_section_name (Elf_Internal_Shdr * sec)
+printable_section_name (const Elf_Internal_Shdr * sec)
 {
 #define MAX_PRINT_SEC_NAME_LEN 128
   static char  sec_name_buf [MAX_PRINT_SEC_NAME_LEN + 1];
 
 static void
 apply_relocations (void * file,
-                  Elf_Internal_Shdr * section,
-                  unsigned char * start)
+                  const Elf_Internal_Shdr * section,
+                  unsigned char * start, bfd_size_type size)
 {
   Elf_Internal_Shdr * relsec;
-  unsigned char * end = start + section->sh_size;
+  unsigned char * end = start + size;
 
   if (elf_header.e_type != ET_REL)
     return;
 
   if (relocate)
     {
-      apply_relocations (file, section, start);
+      apply_relocations (file, section, start, section->sh_size);
     }
   else
     {
 
 static int
 load_specific_debug_section (enum dwarf_section_display_enum debug,
-                            Elf_Internal_Shdr * sec, void * file)
+                            const Elf_Internal_Shdr * sec, void * file)
 {
   struct dwarf_section * section = &debug_displays [debug].section;
   char buf [64];
             and the section size if uncompress is successful.  */
          free (section->start);
          section->start = start;
-         sec->sh_size = size;
        }
       section->size = size;
     }
     return 0;
 
   if (debug_displays [debug].relocate)
-    apply_relocations ((FILE *) file, sec, section->start);
+    apply_relocations ((FILE *) file, sec, section->start, section->size);
 
   return 1;
 }