aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-07-20 10:47:20 +0930
committerAlan Modra <amodra@gmail.com>2019-07-20 10:55:16 +0930
commit9ab3a74416dac187d56fcf292b39b681d1362dae (patch)
tree20e5bf18bbfd27514615b323830afacb902c43e6
parentbcbaec5c407a9301ed987d380ac49426a84c3a0e (diff)
PR24827, Linker loops forever if unterminated multi-line comment in script
YY_INPUT returns 0 on end of input, not EOF. PR 24827 * ldlex.l (comment): Check for 0 return from input(), not EOF.
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/ldlex.l4
2 files changed, 7 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 9fcc55ce3c4..4145096afc8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2019-07-20 Alan Modra <amodra@gmail.com>
+
+ PR 24827
+ * ldlex.l (comment): Check for 0 return from YY_INPUT, not EOF.
+
2019-07-19 Alan Modra <amodra@gmail.com>
* testsuite/ld-powerpc/tlsgd.d,
diff --git a/ld/ldlex.l b/ld/ldlex.l
index c2abc59571d..a5c3ba59992 100644
--- a/ld/ldlex.l
+++ b/ld/ldlex.l
@@ -675,7 +675,7 @@ comment (void)
while (1)
{
c = input();
- while (c != '*' && c != EOF)
+ while (c != '*' && c != 0)
{
if (c == '\n')
lineno++;
@@ -694,7 +694,7 @@ comment (void)
if (c == '\n')
lineno++;
- if (c == EOF)
+ if (c == 0)
{
einfo (_("%F%P: EOF in comment\n"));
break;