From: Alan Modra Date: Sat, 8 Jul 2000 13:35:05 +0000 (+0000) Subject: Fix --section-start=xxxx X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=227aeb075891eaf16367ca6dffc9967a326fb3c6;p=binutils-gdb.git Fix --section-start=xxxx --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 1965b47d611..4109d25c535 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2000-07-08 Alan Modra + + * lexsup.c (parse_args): Copy section name. + 2000-07-07 Charles Wilson * ld/emultempl/pe.em: institute the following search order for diff --git a/ld/lexsup.c b/ld/lexsup.c index 2869d494903..a018f28d95d 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -847,6 +847,8 @@ parse_args (argc, argv) case OPTION_SECTION_START: { char *optarg2; + char *sec_name; + int len; /* Check for =... */ optarg2 = strchr (optarg, '='); @@ -869,12 +871,15 @@ parse_args (argc, argv) xexit (1); } - optarg2[-1] = '\0'; + /* We must copy the section name as set_section_start + doesn't do it for us. */ + len = optarg2 - optarg; + sec_name = xmalloc (len); + memcpy (sec_name, optarg, len - 1); + sec_name[len - 1] = 0; /* Then set it... */ - set_section_start (optarg, optarg2); - - optarg2[-1] = '='; + set_section_start (sec_name, optarg2); } break; case OPTION_TBSS: