summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-02-01 23:52:59 +0000
committerUlrich Drepper <drepper@redhat.com>2008-02-01 23:52:59 +0000
commit7cd1bf7b762f0b7d3b1158e52c800d299ed5333f (patch)
treec082bb3c146c65ce15b106c3aab2a0aed77c35b4
parentc54785af87adcac067f90b1dbc238c29062cf683 (diff)
downloadelfutils-7cd1bf7b762f0b7d3b1158e52c800d299ed5333f.tar.gz
Minor optimization in parameter substituion loop in ld.
-rw-r--r--src/ChangeLog3
-rw-r--r--src/ld.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 06b29781..a532a98e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,8 @@
2008-02-01 Ulrich Drepper <drepper@redhat.com>
+ * ld.c (replace_args): Prevent loop over replacements if the parameter
+ is only two characters long.
+
* ld.c: Recognize sha1 argument for --build-id parameter.
* ldgeneric.c (create_build_id_section): Handle sha1.
(compute_hash_sum): New function. Broken out of compute_build_id.
diff --git a/src/ld.c b/src/ld.c
index a863478a..11c5cabd 100644
--- a/src/ld.c
+++ b/src/ld.c
@@ -512,7 +512,7 @@ replace_args (int argc, char *argv[])
const size_t nargs = sizeof (args) / sizeof (args[0]);
for (int i = 1; i < argc; ++i)
- if (argv[i][0] == '-' && islower (argv[i][1]))
+ if (argv[i][0] == '-' && islower (argv[i][1]) && argv[i][2] != '\0')
for (size_t j = 0; j < nargs; ++j)
if (strcmp (argv[i], args[j].from) == 0)
{