2011-09-21 Tristan Gingold <gingold@adacore.com>

* mach-o.c (bfd_mach_o_convert_section_name_to_bfd): Add comment.
	Deals with size limited strings.
	(bfd_mach_o_build_commands): Initialize more fields.
This commit is contained in:
Tristan Gingold 2011-09-21 10:10:11 +00:00
parent fc436fd907
commit 7ba695a99c
2 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2011-09-21 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_convert_section_name_to_bfd): Add comment.
Deals with size limited strings.
(bfd_mach_o_build_commands): Initialize more fields.
2011-09-15 H.J. Lu <hongjiu.lu@intel.com> 2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13177 PR ld/13177

View File

@ -183,6 +183,9 @@ bfd_mach_o_normalize_section_name (const char *segname, const char *sectname,
} }
} }
/* Convert Mach-O section name to BFD. Try to use standard names, otherwise
forge a new name. SEGNAME and SECTNAME are 16 bytes strings. */
static void static void
bfd_mach_o_convert_section_name_to_bfd bfd_mach_o_convert_section_name_to_bfd
(bfd *abfd, const char *segname, const char *sectname, (bfd *abfd, const char *segname, const char *sectname,
@ -199,7 +202,7 @@ bfd_mach_o_convert_section_name_to_bfd
if (*name) if (*name)
return; return;
len = strlen (segname) + 1 + strlen (sectname) + 1; len = 16 + 1 + 16 + 1;
/* Put "LC_SEGMENT." prefix if the segment name is weird (ie doesn't start /* Put "LC_SEGMENT." prefix if the segment name is weird (ie doesn't start
with an underscore. */ with an underscore. */
@ -214,7 +217,7 @@ bfd_mach_o_convert_section_name_to_bfd
res = bfd_alloc (abfd, len); res = bfd_alloc (abfd, len);
if (res == NULL) if (res == NULL)
return; return;
snprintf (res, len, "%s%s.%s", pfx, segname, sectname); snprintf (res, len, "%s%.16s.%.16s", pfx, segname, sectname);
*name = res; *name = res;
*flags = SEC_NO_FLAGS; *flags = SEC_NO_FLAGS;
} }
@ -1406,6 +1409,8 @@ bfd_mach_o_build_commands (bfd *abfd)
| BFD_MACH_O_PROT_EXECUTE; | BFD_MACH_O_PROT_EXECUTE;
seg->initprot = seg->maxprot; seg->initprot = seg->maxprot;
seg->flags = 0; seg->flags = 0;
seg->sect_head = NULL;
seg->sect_tail = NULL;
/* Create Mach-O sections. */ /* Create Mach-O sections. */
target_index = 0; target_index = 0;