components/perl/perl520/patches/a2p_buffer.patch
author Vladimir Marek <Vladimir.Marek@oracle.com>
Sun, 28 Feb 2016 23:58:10 +0100
changeset 5524 7c50b6f98812
permissions -rw-r--r--
21833850 a2p dumps core with -n option due to wrong arguments processing
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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;