author | Vladimir Marek <Vladimir.Marek@oracle.com> |
Sun, 28 Feb 2016 23:58:10 +0100 | |
changeset 5524 | 7c50b6f98812 |
permissions | -rw-r--r-- |
5524
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
1 |
Upstream bug https://rt.cpan.org/Public/Bug/Display.html?id=100361 |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
2 |
|
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
3 |
This problem probably won't be in more recent perl version as the a2p was |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
4 |
removed fro it's core into external module. |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
5 |
|
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
6 |
--- perl-5.20.1/x2p/walk.c 2016-02-28 14:47:40.050370036 -0800 |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
7 |
+++ perl-5.20.1/x2p/walk.c 2016-02-28 14:38:30.190107484 -0800 |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
8 |
@@ -69,8 +69,10 @@ walk(int useval, int level, int node, in |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
9 |
if (namelist) { |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
10 |
while (isALPHA(*namelist)) { |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
11 |
for (d = tokenbuf,s=namelist; |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
12 |
- isWORDCHAR(*s); |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
13 |
+ d - tokenbuf < sizeof(tokenbuf) && isWORDCHAR(*s); |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
14 |
*d++ = *s++) ; |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
15 |
+ if (d - tokenbuf == sizeof(tokenbuf)) |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
16 |
+ fatal("Internal error: argument longer than %d: %s", sizeof(tokenbuf) - 1, namelist); |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
17 |
*d = '\0'; |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
18 |
while (*s && !isALPHA(*s)) s++; |
7c50b6f98812
21833850 a2p dumps core with -n option due to wrong arguments processing
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
19 |
namelist = s; |