Discussion:
[perl.git] branch maint-5.12, updated. v5.12.1-62-ga812667
(too old to reply)
Steffen Mueller
2010-07-31 18:12:18 UTC
Permalink
In perl.git, the branch maint-5.12 has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/a812667ac70fa062909d32a87ad9c756098c49bf?hp=8b81de737b11be97cfb1c5d0fdb93573cc3f5002>

- Log -----------------------------------------------------------------
commit a812667ac70fa062909d32a87ad9c756098c49bf
Author: Steffen Mueller <***@cpan.org>
Date: Sat Jul 31 20:10:40 2010 +0200

Fix POD link

Fixes a bad link and associated test failure that were introduced by
yours truly when cherry-picking 1aae995a5295b9fa1dfabb00e962a95b53040f18.

M pod/perlrepository.pod

commit 8adc9ad6b056cde008af18f8d14156424a2b713c
Author: Curtis Jewell <***@csjewell.fastmail.us>
Date: Mon May 17 01:50:19 2010 -0600

Update perlhist.pod for 5.10.1-5.12.1

M pod/perlhist.pod

commit 67728a7f37c3d553532a19faf3b69f0f75e1b408
Author: Chris 'BinGOs' Williams <***@bingosnet.co.uk>
Date: Sat May 8 12:57:00 2010 +0100

Backport patch from CPANPLUS-0.9004 to cpanp-run-perl

This resolves RT #55964 and RT #57106 relating to the failure to
install distributions that use Module::Install::DSL

The addition of a BEGIN {} block to cpanp-run-perl resolves the
issue.

M cpan/CPANPLUS/bin/cpanp-run-perl

commit 1034633874902704c77f920090df30c42cfc8216
Author: Tony Cook <***@develop-help.com>
Date: Fri Apr 23 19:28:35 2010 +1000

RT#73814 - unpack() didn't handle scalar context correctly for %32H and %32u

split() would crash because the third item on the stack wasn't the
regular expression it expected. unpack("%2H", ...) would return both
the unpacked result and the checksum on the stack, similarly for
unpack("%2u", ...).

M pp_pack.c
M t/op/pack.t
-----------------------------------------------------------------------

Summary of changes:
cpan/CPANPLUS/bin/cpanp-run-perl | 3 +-
pod/perlhist.pod | 184 +++++++++++++++++++------------------
pod/perlrepository.pod | 2 +-
pp_pack.c | 33 +++++---
t/op/pack.t | 10 ++-
5 files changed, 127 insertions(+), 105 deletions(-)

diff --git a/cpan/CPANPLUS/bin/cpanp-run-perl b/cpan/CPANPLUS/bin/cpanp-run-perl
index 34e62bd..b6b4dc6 100644
--- a/cpan/CPANPLUS/bin/cpanp-run-perl
+++ b/cpan/CPANPLUS/bin/cpanp-run-perl
@@ -1,10 +1,11 @@
use strict;
+BEGIN {
my $old = select STDERR; $|++; # turn on autoflush
select $old; $|++; # turn on autoflush
$0 = shift(@ARGV); # rename the script
my $rv = do($0); # execute the file
die $@ if $@; # die on parse/execute error
-
+}
### XXX 'do' returns last statement evaluated, which may be
### undef as well. So don't die in that case.
#die $! if not defined $rv; # die on execute error
diff --git a/pod/perlhist.pod b/pod/perlhist.pod
index 4a78a3c..df1652e 100644
--- a/pod/perlhist.pod
+++ b/pod/perlhist.pod
@@ -433,68 +433,71 @@ explained below.
release core lib ext t doc
======================================================================

- 1.000 212 29 - - - - 38 51 62 3
- 1.014 219 29 - - - - 39 52 68 4
- 2.000 309 31 2 3 - - 55 57 92 4
- 2.001 312 31 2 3 - - 55 57 94 4
- 3.000 508 36 24 11 - - 79 73 156 5
- 3.044 645 37 61 20 - - 90 74 190 6
- 4.000 635 37 59 20 - - 91 75 198 4
- 4.019 680 37 85 29 - - 98 76 199 4
- 4.036 709 37 89 30 - - 98 76 208 5
- 5.000alpha2 785 50 114 32 - - 112 86 209 5
- 5.000alpha3 801 50 117 33 - - 121 87 209 5
- 5.000alpha9 1022 56 149 43 116 29 125 90 217 6
- 5.000a12h 978 49 140 49 205 46 152 97 228 9
- 5.000b3h 1035 53 232 70 216 38 162 94 218 21
- 5.000 1038 53 250 76 216 38 154 92 536 62
- 5.001m 1071 54 388 82 240 38 159 95 544 29
- 5.002 1121 54 661 101 287 43 155 94 847 35
- 5.003 1129 54 680 102 291 43 166 100 853 35
- 5.003_07 1231 60 748 106 396 53 213 137 976 39
- 5.004 1351 60 1230 136 408 51 355 161 1587 55
- 5.004_01 1356 60 1258 138 410 51 358 161 1587 55
- 5.004_04 1375 60 1294 139 413 51 394 162 1629 55
- 5.004_05 1463 60 1435 150 394 50 445 175 1855 59
- 5.004_51 1401 61 1260 140 413 53 358 162 1594 56
- 5.004_53 1422 62 1295 141 438 70 394 162 1637 56
- 5.004_56 1501 66 1301 140 447 74 408 165 1648 57
- 5.004_59 1555 72 1317 142 448 74 424 171 1678 58
- 5.004_62 1602 77 1327 144 629 92 428 173 1674 58
- 5.004_65 1626 77 1358 146 615 92 446 179 1698 60
- 5.004_68 1856 74 1382 152 619 92 463 187 1784 60
- 5.004_70 1863 75 1456 154 675 92 494 194 1809 60
- 5.004_73 1874 76 1467 152 762 102 506 196 1883 61
- 5.004_75 1877 76 1467 152 770 103 508 196 1896 62
- 5.005 1896 76 1469 152 795 103 509 197 1945 63
- 5.005_03 1936 77 1541 153 813 104 551 201 2176 72
- 5.005_50 1969 78 1842 301 795 103 514 198 1948 63
- 5.005_53 1999 79 1885 303 806 104 602 224 2002 67
- 5.005_56 2086 79 1970 307 866 113 672 238 2221 75
- 5.6.0 2820 79 2626 364 1096 129 863 280 2840 93
- 5.6.1 2946 78 2921 430 1171 132 1024 304 3330 102
- 5.6.2 2947 78 3143 451 1247 127 1303 387 3406 102
- 5.7.0 2977 80 2801 425 1250 132 975 307 3206 100
- 5.7.1 3351 84 3442 455 1944 167 1334 357 3698 124
- 5.7.2 3491 87 4858 618 3290 298 1598 449 3910 139
- 5.7.3 3299 85 4295 537 2196 300 2176 626 4171 120
- 5.8.0 3489 87 4533 585 2437 331 2588 726 4368 125
- 5.8.1 3674 90 5104 623 2604 353 2983 836 4625 134
- 5.8.2 3633 90 5111 623 2623 357 3019 848 4634 135
- 5.8.3 3625 90 5141 624 2660 363 3083 869 4669 136
- 5.8.4 3653 90 5170 634 2684 368 3148 885 4689 137
- 5.8.5 3664 90 4260 303 2707 369 3208 898 4689 138
- 5.8.6 3690 90 4271 303 3141 396 3411 925 4709 139
- 5.8.7 3788 90 4322 307 3297 401 3485 964 4744 141
- 5.8.8 3895 90 4357 314 3409 431 3622 1017 4979 144
- 5.8.9 4132 93 5508 330 3826 529 4364 1234 5348 152
- 5.9.0 3657 90 4951 626 2603 354 3011 841 4609 135
- 5.9.1 3580 90 5196 634 2665 367 3186 889 4725 138
- 5.9.2 3863 90 4654 312 3283 403 3551 973 4800 142
- 5.9.3 4096 91 5318 381 4806 597 4272 1214 5139 147
- 5.9.4 4393 94 5718 415 4578 642 4646 1310 5335 153
- 5.9.5 4681 96 6849 479 4827 671 5155 1490 5572 159
- 5.10.0 4710 97 7050 486 4899 673 5275 1503 5673 160
+ 1.000 212 29 - - - - 38 51 62 3
+ 1.014 219 29 - - - - 39 52 68 4
+ 2.000 309 31 2 3 - - 55 57 92 4
+ 2.001 312 31 2 3 - - 55 57 94 4
+ 3.000 508 36 24 11 - - 79 73 156 5
+ 3.044 645 37 61 20 - - 90 74 190 6
+ 4.000 635 37 59 20 - - 91 75 198 4
+ 4.019 680 37 85 29 - - 98 76 199 4
+ 4.036 709 37 89 30 - - 98 76 208 5
+ 5.000alpha2 785 50 114 32 - - 112 86 209 5
+ 5.000alpha3 801 50 117 33 - - 121 87 209 5
+ 5.000alpha9 1022 56 149 43 116 29 125 90 217 6
+ 5.000a12h 978 49 140 49 205 46 152 97 228 9
+ 5.000b3h 1035 53 232 70 216 38 162 94 218 21
+ 5.000 1038 53 250 76 216 38 154 92 536 62
+ 5.001m 1071 54 388 82 240 38 159 95 544 29
+ 5.002 1121 54 661 101 287 43 155 94 847 35
+ 5.003 1129 54 680 102 291 43 166 100 853 35
+ 5.003_07 1231 60 748 106 396 53 213 137 976 39
+ 5.004 1351 60 1230 136 408 51 355 161 1587 55
+ 5.004_01 1356 60 1258 138 410 51 358 161 1587 55
+ 5.004_04 1375 60 1294 139 413 51 394 162 1629 55
+ 5.004_05 1463 60 1435 150 394 50 445 175 1855 59
+ 5.004_51 1401 61 1260 140 413 53 358 162 1594 56
+ 5.004_53 1422 62 1295 141 438 70 394 162 1637 56
+ 5.004_56 1501 66 1301 140 447 74 408 165 1648 57
+ 5.004_59 1555 72 1317 142 448 74 424 171 1678 58
+ 5.004_62 1602 77 1327 144 629 92 428 173 1674 58
+ 5.004_65 1626 77 1358 146 615 92 446 179 1698 60
+ 5.004_68 1856 74 1382 152 619 92 463 187 1784 60
+ 5.004_70 1863 75 1456 154 675 92 494 194 1809 60
+ 5.004_73 1874 76 1467 152 762 102 506 196 1883 61
+ 5.004_75 1877 76 1467 152 770 103 508 196 1896 62
+ 5.005 1896 76 1469 152 795 103 509 197 1945 63
+ 5.005_03 1936 77 1541 153 813 104 551 201 2176 72
+ 5.005_50 1969 78 1842 301 795 103 514 198 1948 63
+ 5.005_53 1999 79 1885 303 806 104 602 224 2002 67
+ 5.005_56 2086 79 1970 307 866 113 672 238 2221 75
+ 5.6.0 2820 79 2626 364 1096 129 863 280 2840 93
+ 5.6.1 2946 78 2921 430 1171 132 1024 304 3330 102
+ 5.6.2 2947 78 3143 451 1247 127 1303 387 3406 102
+ 5.7.0 2977 80 2801 425 1250 132 975 307 3206 100
+ 5.7.1 3351 84 3442 455 1944 167 1334 357 3698 124
+ 5.7.2 3491 87 4858 618 3290 298 1598 449 3910 139
+ 5.7.3 3299 85 4295 537 2196 300 2176 626 4171 120
+ 5.8.0 3489 87 4533 585 2437 331 2588 726 4368 125
+ 5.8.1 3674 90 5104 623 2604 353 2983 836 4625 134
+ 5.8.2 3633 90 5111 623 2623 357 3019 848 4634 135
+ 5.8.3 3625 90 5141 624 2660 363 3083 869 4669 136
+ 5.8.4 3653 90 5170 634 2684 368 3148 885 4689 137
+ 5.8.5 3664 90 4260 303 2707 369 3208 898 4689 138
+ 5.8.6 3690 90 4271 303 3141 396 3411 925 4709 139
+ 5.8.7 3788 90 4322 307 3297 401 3485 964 4744 141
+ 5.8.8 3895 90 4357 314 3409 431 3622 1017 4979 144
+ 5.8.9 4132 93 5508 330 3826 529 4364 1234 5348 152
+ 5.9.0 3657 90 4951 626 2603 354 3011 841 4609 135
+ 5.9.1 3580 90 5196 634 2665 367 3186 889 4725 138
+ 5.9.2 3863 90 4654 312 3283 403 3551 973 4800 142
+ 5.9.3 4096 91 5318 381 4806 597 4272 1214 5139 147
+ 5.9.4 4393 94 5718 415 4578 642 4646 1310 5335 153
+ 5.9.5 4681 96 6849 479 4827 671 5155 1490 5572 159
+ 5.10.0 4710 97 7050 486 4899 673 5275 1503 5673 160
+ 5.10.1 4858 98 7440 519 6195 921 6147 1751 5151 163
+ 5.12.0 4999 100 1146 121 15227 2176 6400 1843 5342 168
+ 5.12.1 5000 100 1146 121 15283 2178 6407 1846 5354 169

The "core"..."doc" mean the following files from the Perl source code
distribution. The glob notation ** means recursively, (.) means
@@ -502,7 +505,8 @@ regular files.

core *.[hcy]
lib lib/**/*.p[ml]
- ext ext/**/*.{[hcyt],xs,pm}
+ ext ext/**/*.{[hcyt],xs,pm} (for -5.10.1) or
+ {dist,ext,cpan}/**/*.{[hcyt],xs,pm} (for 5.12.0-)
t t/**/*(.) (for 1-5.005_56) or **/*.t (for 5.6.0-5.7.3)
doc {README*,INSTALL,*[_.]man{,.?},pod/**/*.pod}

@@ -739,33 +743,33 @@ the Perl source distribution for somewhat more selected releases.

======================================================================

- 5.9.5 5.10.0
-
- apollo 8 3 8 3
- beos 8 4 8 4
- Configure 518 1 518 1
- Cross 122 15 122 15
- djgpp 21 7 21 7
- emacs 329 4 406 4
- epoc 34 8 35 8
- h2pl 24 15 24 15
- hints 377 98 381 98
- mad 182 8 182 8
- mint 11 9 11 9
- mpeix 49 6 49 6
- NetWare 489 61 489 61
- os2 552 70 552 70
- plan9 324 17 324 17
- Porting 627 40 632 40
- qnx 5 3 5 4
- symbian 300 54 300 54
- utils 260 26 264 27
- uts 12 3 12 3
- vmesa 25 4 25 4
- vms 690 32 722 32
- vos 19 8 19 8
- win32 1482 68 1485 68
- x2p 349 19 349 19
+ 5.9.5 5.10.0 5.10.1 5.12.0 5.12.1
+
+ apollo 8 3 8 3 0 3 0 3 0 3
+ beos 8 4 8 4 4 4 4 4 4 4
+ Configure 518 1 518 1 533 1 536 1 536 1
+ Cross 122 15 122 15 119 15 118 15 118 15
+ djgpp 21 7 21 7 17 7 17 7 17 7
+ emacs 329 4 406 4 402 4 402 4 402 4
+ epoc 34 8 35 8 31 8 31 8 31 8
+ h2pl 24 15 24 15 12 15 12 15 12 15
+ hints 377 98 381 98 385 100 368 97 368 97
+ mad 182 8 182 8 174 8 174 8 174 8
+ mint 11 9 11 9 3 9 - - - -
+ mpeix 49 6 49 6 45 6 45 6 45 6
+ NetWare 489 61 489 61 465 61 466 61 466 61
+ os2 552 70 552 70 507 70 507 70 507 70
+ plan9 324 17 324 17 316 17 316 17 316 17
+ Porting 627 40 632 40 933 53 749 54 749 54
+ qnx 5 3 5 4 1 4 1 4 1 4
+ symbian 300 54 300 54 290 54 288 54 288 54
+ utils 260 26 264 27 268 27 269 27 269 27
+ uts 12 3 12 3 8 3 8 3 8 3
+ vmesa 25 4 25 4 21 4 21 4 21 4
+ vms 690 32 722 32 693 30 645 18 645 18
+ vos 19 8 19 8 16 8 16 8 16 8
+ win32 1482 68 1485 68 1497 70 1841 73 1841 73
+ x2p 349 19 349 19 345 19 345 19 345 19

=head2 SELECTED PATCH SIZES

diff --git a/pod/perlrepository.pod b/pod/perlrepository.pod
index 20b6209..11b2249 100644
--- a/pod/perlrepository.pod
+++ b/pod/perlrepository.pod
@@ -738,7 +738,7 @@ The same patch as above, using github might look like this:
% git push origin orange

The orange branch has been pushed to GitHub, so you should now send an
-email (see L</Submitting a patch>) with a description of your changes
+email (see L</SUBMITTING A PATCH>) with a description of your changes
and the following information:

http://github.com/USERNAME/perl/tree/orange
diff --git a/pp_pack.c b/pp_pack.c
index 0670548..0ae8afd 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -1562,9 +1562,11 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
/* Preliminary length estimate, acceptable for utf8 too */
if (howlen == e_star || len > (strend - s) * 2)
len = (strend - s) * 2;
- sv = sv_2mortal(newSV(len ? len : 1));
- SvPOK_on(sv);
- str = SvPVX(sv);
+ if (!checksum) {
+ sv = sv_2mortal(newSV(len ? len : 1));
+ SvPOK_on(sv);
+ str = SvPVX(sv);
+ }
if (datumtype == 'h') {
U8 bits = 0;
I32 ai32 = len;
@@ -1574,7 +1576,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
if (s >= strend) break;
bits = uni_to_byte(aTHX_ &s, strend, datumtype);
} else bits = * (U8 *) s++;
- *str++ = PL_hexdigit[bits & 15];
+ if (!checksum)
+ *str++ = PL_hexdigit[bits & 15];
}
} else {
U8 bits = 0;
@@ -1585,12 +1588,15 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
if (s >= strend) break;
bits = uni_to_byte(aTHX_ &s, strend, datumtype);
} else bits = *(U8 *) s++;
- *str++ = PL_hexdigit[(bits >> 4) & 15];
+ if (!checksum)
+ *str++ = PL_hexdigit[(bits >> 4) & 15];
}
}
- *str = '\0';
- SvCUR_set(sv, str - SvPVX_const(sv));
- XPUSHs(sv);
+ if (!checksum) {
+ *str = '\0';
+ SvCUR_set(sv, str - SvPVX_const(sv));
+ XPUSHs(sv);
+ }
break;
}
case 'C':
@@ -2123,7 +2129,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
break;
#endif
case 'u':
- {
+ if (!checksum) {
const STRLEN l = (STRLEN) (strend - s) * 3 / 4;
sv = sv_2mortal(newSV(l));
if (l) SvPOK_on(sv);
@@ -2141,7 +2147,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
hunk[0] = (char)((a << 2) | (b >> 4));
hunk[1] = (char)((b << 4) | (c >> 2));
hunk[2] = (char)((c << 6) | d);
- sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
+ if (!checksum)
+ sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
len -= 3;
}
if (s < strend) {
@@ -2182,7 +2189,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
hunk[0] = (char)((a << 2) | (b >> 4));
hunk[1] = (char)((b << 4) | (c >> 2));
hunk[2] = (char)((c << 6) | d);
- sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
+ if (!checksum)
+ sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
len -= 3;
}
if (*s == '\n')
@@ -2192,7 +2200,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
s += 2;
}
}
- XPUSHs(sv);
+ if (!checksum)
+ XPUSHs(sv);
break;
}

diff --git a/t/op/pack.t b/t/op/pack.t
index 4b5f9a5..5775caf 100644
--- a/t/op/pack.t
+++ b/t/op/pack.t
@@ -12,7 +12,7 @@ my $no_endianness = $] > 5.009 ? '' :
my $no_signedness = $] > 5.009 ? '' :
"Signed/unsigned pack modifiers not available on this perl";

-plan tests => 14697;
+plan tests => 14699;

use strict;
use warnings qw(FATAL all);
@@ -1985,3 +1985,11 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
my ($v) = split //, unpack ('(B)*', 'ab');
is($v, 0); # Doesn't SEGV :-)
}
+{
+ #73814
+ my $x = runperl( prog => 'print split( /,/, unpack(q(%2H*), q(hello world))), qq(\n)' );
+ is($x, "0\n", "split /a/, unpack('%2H*'...) didn't crash");
+
+ my $y = runperl( prog => 'print split( /,/, unpack(q(%32u*), q(#,3,Q)), qq(\n)), qq(\n)' );
+ is($y, "0\n", "split /a/, unpack('%32u*'...) didn't crash");
+}

--
Perl5 Master Repository
Jerry D. Hedden
2010-08-02 15:36:36 UTC
Permalink
This commit to maint-5.12 brings in a couple of build warnings:

pp_pack.c: In function `S_unpack_rec':
pp_pack.c:1228: warning: 'sv' might be used uninitialized in this function
pp_pack.c:1561: warning: 'str' might be used uninitialized in this function

Commit 3297d27d658a6691c429e496bd2a05fe04eda9d7 specifically addresses
these so should be cherry-picked to got to maint-5.12, too.

commit 3297d27d658a6691c429e496bd2a05fe04eda9d7
Author: Vincent Pit <***@profvince.com>
Date: Tue May 4 10:43:07 2010 +0200

Silence a couple of false positive "may be used uninitialized" gcc warnings
Post by Steffen Mueller
In perl.git, the branch maint-5.12 has been updated
<http://perl5.git.perl.org/perl.git/commitdiff/a812667ac70fa062909d32a87ad9c756098c49bf?hp=8b81de737b11be97cfb1c5d0fdb93573cc3f5002>
- Log -----------------------------------------------------------------
commit a812667ac70fa062909d32a87ad9c756098c49bf
Date:   Sat Jul 31 20:10:40 2010 +0200
   Fix POD link
   Fixes a bad link and associated test failure that were introduced by
   yours truly when cherry-picking 1aae995a5295b9fa1dfabb00e962a95b53040f18.
M       pod/perlrepository.pod
commit 8adc9ad6b056cde008af18f8d14156424a2b713c
Date:   Mon May 17 01:50:19 2010 -0600
   Update perlhist.pod for 5.10.1-5.12.1
M       pod/perlhist.pod
commit 67728a7f37c3d553532a19faf3b69f0f75e1b408
Date:   Sat May 8 12:57:00 2010 +0100
   Backport patch from CPANPLUS-0.9004 to cpanp-run-perl
     This resolves RT #55964 and RT #57106 relating to the failure to
     install distributions that use Module::Install::DSL
     The addition of a BEGIN {} block to cpanp-run-perl resolves the
     issue.
M       cpan/CPANPLUS/bin/cpanp-run-perl
commit 1034633874902704c77f920090df30c42cfc8216
Date:   Fri Apr 23 19:28:35 2010 +1000
   RT#73814 - unpack() didn't handle scalar context correctly for %32H and %32u
   split() would crash because the third item on the stack wasn't the
   regular expression it expected.  unpack("%2H", ...) would return both
   the unpacked result and the checksum on the stack, similarly for
   unpack("%2u", ...).
M       pp_pack.c
M       t/op/pack.t
-----------------------------------------------------------------------
 cpan/CPANPLUS/bin/cpanp-run-perl |    3 +-
 pod/perlhist.pod                 |  184 +++++++++++++++++++------------------
 pod/perlrepository.pod           |    2 +-
 pp_pack.c                        |   33 +++++---
 t/op/pack.t                      |   10 ++-
 5 files changed, 127 insertions(+), 105 deletions(-)
diff --git a/cpan/CPANPLUS/bin/cpanp-run-perl b/cpan/CPANPLUS/bin/cpanp-run-perl
index 34e62bd..b6b4dc6 100644
--- a/cpan/CPANPLUS/bin/cpanp-run-perl
+++ b/cpan/CPANPLUS/bin/cpanp-run-perl
@@ -1,10 +1,11 @@
 use strict;
+BEGIN {
 my $old = select STDERR; $|++;  # turn on autoflush
 select $old;             $|++;  # turn on autoflush
 my $rv = do($0);                # execute the file
-
+}
 ### XXX 'do' returns last statement evaluated, which may be
 ### undef as well. So don't die in that case.
 #die $! if not defined $rv;      # die on execute error
diff --git a/pod/perlhist.pod b/pod/perlhist.pod
index 4a78a3c..df1652e 100644
--- a/pod/perlhist.pod
+++ b/pod/perlhist.pod
@@ -433,68 +433,71 @@ explained below.
 release        core       lib         ext        t         doc
 ======================================================================
- 1.000           212  29      -   -      -   -     38   51     62   3
- 1.014           219  29      -   -      -   -     39   52     68   4
- 2.000           309  31      2   3      -   -     55   57     92   4
- 2.001           312  31      2   3      -   -     55   57     94   4
- 3.000           508  36     24  11      -   -     79   73    156   5
- 3.044           645  37     61  20      -   -     90   74    190   6
- 4.000           635  37     59  20      -   -     91   75    198   4
- 4.019           680  37     85  29      -   -     98   76    199   4
- 4.036           709  37     89  30      -   -     98   76    208   5
- 5.000alpha2     785  50    114  32      -   -    112   86    209   5
- 5.000alpha3     801  50    117  33      -   -    121   87    209   5
- 5.000alpha9    1022  56    149  43    116  29    125   90    217   6
- 5.000a12h       978  49    140  49    205  46    152   97    228   9
- 5.000b3h       1035  53    232  70    216  38    162   94    218  21
- 5.000          1038  53    250  76    216  38    154   92    536  62
- 5.001m         1071  54    388  82    240  38    159   95    544  29
- 5.002          1121  54    661 101    287  43    155   94    847  35
- 5.003          1129  54    680 102    291  43    166  100    853  35
- 5.003_07       1231  60    748 106    396  53    213  137    976  39
- 5.004          1351  60   1230 136    408  51    355  161   1587  55
- 5.004_01       1356  60   1258 138    410  51    358  161   1587  55
- 5.004_04       1375  60   1294 139    413  51    394  162   1629  55
- 5.004_05       1463  60   1435 150    394  50    445  175   1855  59
- 5.004_51       1401  61   1260 140    413  53    358  162   1594  56
- 5.004_53       1422  62   1295 141    438  70    394  162   1637  56
- 5.004_56       1501  66   1301 140    447  74    408  165   1648  57
- 5.004_59       1555  72   1317 142    448  74    424  171   1678  58
- 5.004_62       1602  77   1327 144    629  92    428  173   1674  58
- 5.004_65       1626  77   1358 146    615  92    446  179   1698  60
- 5.004_68       1856  74   1382 152    619  92    463  187   1784  60
- 5.004_70       1863  75   1456 154    675  92    494  194   1809  60
- 5.004_73       1874  76   1467 152    762 102    506  196   1883  61
- 5.004_75       1877  76   1467 152    770 103    508  196   1896  62
- 5.005          1896  76   1469 152    795 103    509  197   1945  63
- 5.005_03       1936  77   1541 153    813 104    551  201   2176  72
- 5.005_50       1969  78   1842 301    795 103    514  198   1948  63
- 5.005_53       1999  79   1885 303    806 104    602  224   2002  67
- 5.005_56       2086  79   1970 307    866 113    672  238   2221  75
- 5.6.0          2820  79   2626 364   1096 129    863  280   2840  93
- 5.6.1          2946  78   2921 430   1171 132   1024  304   3330 102
- 5.6.2          2947  78   3143 451   1247 127   1303  387   3406 102
- 5.7.0          2977  80   2801 425   1250 132    975  307   3206 100
- 5.7.1          3351  84   3442 455   1944 167   1334  357   3698 124
- 5.7.2          3491  87   4858 618   3290 298   1598  449   3910 139
- 5.7.3          3299  85   4295 537   2196 300   2176  626   4171 120
- 5.8.0          3489  87   4533 585   2437 331   2588  726   4368 125
- 5.8.1          3674  90   5104 623   2604 353   2983  836   4625 134
- 5.8.2          3633  90   5111 623   2623 357   3019  848   4634 135
- 5.8.3          3625  90   5141 624   2660 363   3083  869   4669 136
- 5.8.4          3653  90   5170 634   2684 368   3148  885   4689 137
- 5.8.5          3664  90   4260 303   2707 369   3208  898   4689 138
- 5.8.6          3690  90   4271 303   3141 396   3411  925   4709 139
- 5.8.7          3788  90   4322 307   3297 401   3485  964   4744 141
- 5.8.8          3895  90   4357 314   3409 431   3622 1017   4979 144
- 5.8.9          4132  93   5508 330   3826 529   4364 1234   5348 152
- 5.9.0          3657  90   4951 626   2603 354   3011  841   4609 135
- 5.9.1          3580  90   5196 634   2665 367   3186  889   4725 138
- 5.9.2          3863  90   4654 312   3283 403   3551  973   4800 142
- 5.9.3          4096  91   5318 381   4806 597   4272 1214   5139 147
- 5.9.4          4393  94   5718 415   4578 642   4646 1310   5335 153
- 5.9.5          4681  96   6849 479   4827 671   5155 1490   5572 159
- 5.10.0         4710  97   7050 486   4899 673   5275 1503   5673 160
+ 1.000           212  29      -   -      -    -     38   51     62   3
+ 1.014           219  29      -   -      -    -     39   52     68   4
+ 2.000           309  31      2   3      -    -     55   57     92   4
+ 2.001           312  31      2   3      -    -     55   57     94   4
+ 3.000           508  36     24  11      -    -     79   73    156   5
+ 3.044           645  37     61  20      -    -     90   74    190   6
+ 4.000           635  37     59  20      -    -     91   75    198   4
+ 4.019           680  37     85  29      -    -     98   76    199   4
+ 4.036           709  37     89  30      -    -     98   76    208   5
+ 5.000alpha2     785  50    114  32      -    -    112   86    209   5
+ 5.000alpha3     801  50    117  33      -    -    121   87    209   5
+ 5.000alpha9    1022  56    149  43    116   29    125   90    217   6
+ 5.000a12h       978  49    140  49    205   46    152   97    228   9
+ 5.000b3h       1035  53    232  70    216   38    162   94    218  21
+ 5.000          1038  53    250  76    216   38    154   92    536  62
+ 5.001m         1071  54    388  82    240   38    159   95    544  29
+ 5.002          1121  54    661 101    287   43    155   94    847  35
+ 5.003          1129  54    680 102    291   43    166  100    853  35
+ 5.003_07       1231  60    748 106    396   53    213  137    976  39
+ 5.004          1351  60   1230 136    408   51    355  161   1587  55
+ 5.004_01       1356  60   1258 138    410   51    358  161   1587  55
+ 5.004_04       1375  60   1294 139    413   51    394  162   1629  55
+ 5.004_05       1463  60   1435 150    394   50    445  175   1855  59
+ 5.004_51       1401  61   1260 140    413   53    358  162   1594  56
+ 5.004_53       1422  62   1295 141    438   70    394  162   1637  56
+ 5.004_56       1501  66   1301 140    447   74    408  165   1648  57
+ 5.004_59       1555  72   1317 142    448   74    424  171   1678  58
+ 5.004_62       1602  77   1327 144    629   92    428  173   1674  58
+ 5.004_65       1626  77   1358 146    615   92    446  179   1698  60
+ 5.004_68       1856  74   1382 152    619   92    463  187   1784  60
+ 5.004_70       1863  75   1456 154    675   92    494  194   1809  60
+ 5.004_73       1874  76   1467 152    762  102    506  196   1883  61
+ 5.004_75       1877  76   1467 152    770  103    508  196   1896  62
+ 5.005          1896  76   1469 152    795  103    509  197   1945  63
+ 5.005_03       1936  77   1541 153    813  104    551  201   2176  72
+ 5.005_50       1969  78   1842 301    795  103    514  198   1948  63
+ 5.005_53       1999  79   1885 303    806  104    602  224   2002  67
+ 5.005_56       2086  79   1970 307    866  113    672  238   2221  75
+ 5.6.0          2820  79   2626 364   1096  129    863  280   2840  93
+ 5.6.1          2946  78   2921 430   1171  132   1024  304   3330 102
+ 5.6.2          2947  78   3143 451   1247  127   1303  387   3406 102
+ 5.7.0          2977  80   2801 425   1250  132    975  307   3206 100
+ 5.7.1          3351  84   3442 455   1944  167   1334  357   3698 124
+ 5.7.2          3491  87   4858 618   3290  298   1598  449   3910 139
+ 5.7.3          3299  85   4295 537   2196  300   2176  626   4171 120
+ 5.8.0          3489  87   4533 585   2437  331   2588  726   4368 125
+ 5.8.1          3674  90   5104 623   2604  353   2983  836   4625 134
+ 5.8.2          3633  90   5111 623   2623  357   3019  848   4634 135
+ 5.8.3          3625  90   5141 624   2660  363   3083  869   4669 136
+ 5.8.4          3653  90   5170 634   2684  368   3148  885   4689 137
+ 5.8.5          3664  90   4260 303   2707  369   3208  898   4689 138
+ 5.8.6          3690  90   4271 303   3141  396   3411  925   4709 139
+ 5.8.7          3788  90   4322 307   3297  401   3485  964   4744 141
+ 5.8.8          3895  90   4357 314   3409  431   3622 1017   4979 144
+ 5.8.9          4132  93   5508 330   3826  529   4364 1234   5348 152
+ 5.9.0          3657  90   4951 626   2603  354   3011  841   4609 135
+ 5.9.1          3580  90   5196 634   2665  367   3186  889   4725 138
+ 5.9.2          3863  90   4654 312   3283  403   3551  973   4800 142
+ 5.9.3          4096  91   5318 381   4806  597   4272 1214   5139 147
+ 5.9.4          4393  94   5718 415   4578  642   4646 1310   5335 153
+ 5.9.5          4681  96   6849 479   4827  671   5155 1490   5572 159
+ 5.10.0         4710  97   7050 486   4899  673   5275 1503   5673 160
+ 5.10.1         4858  98   7440 519   6195  921   6147 1751   5151 163
+ 5.12.0         4999 100   1146 121  15227 2176   6400 1843   5342 168
+ 5.12.1         5000 100   1146 121  15283 2178   6407 1846   5354 169
 The "core"..."doc" mean the following files from the Perl source code
 distribution.  The glob notation ** means recursively, (.) means
@@ -502,7 +505,8 @@ regular files.
 core   *.[hcy]
 lib    lib/**/*.p[ml]
- ext    ext/**/*.{[hcyt],xs,pm}
+ ext    ext/**/*.{[hcyt],xs,pm} (for -5.10.1) or
+        {dist,ext,cpan}/**/*.{[hcyt],xs,pm} (for 5.12.0-)
 t      t/**/*(.) (for 1-5.005_56) or **/*.t (for 5.6.0-5.7.3)
 doc    {README*,INSTALL,*[_.]man{,.?},pod/**/*.pod}
@@ -739,33 +743,33 @@ the Perl source distribution for somewhat more selected releases.
 ======================================================================
-                  5.9.5     5.10.0
-
- apollo          8    3     8    3
- beos            8    4     8    4
- Configure     518    1   518    1
- Cross         122   15   122   15
- djgpp          21    7    21    7
- emacs         329    4   406    4
- epoc           34    8    35    8
- h2pl           24   15    24   15
- hints         377   98   381   98
- mad           182    8   182    8
- mint           11    9    11    9
- mpeix          49    6    49    6
- NetWare       489   61   489   61
- os2           552   70   552   70
- plan9         324   17   324   17
- Porting       627   40   632   40
- qnx             5    3     5    4
- symbian       300   54   300   54
- utils         260   26   264   27
- uts            12    3    12    3
- vmesa          25    4    25    4
- vms           690   32   722   32
- vos            19    8    19    8
- win32        1482   68  1485   68
- x2p           349   19   349   19
+                  5.9.5     5.10.0     5.10.1     5.12.0     5.12.1
+
+ apollo          8    3     8    3     0    3     0    3     0    3
+ beos            8    4     8    4     4    4     4    4     4    4
+ Configure     518    1   518    1   533    1   536    1   536    1
+ Cross         122   15   122   15   119   15   118   15   118   15
+ djgpp          21    7    21    7    17    7    17    7    17    7
+ emacs         329    4   406    4   402    4   402    4   402    4
+ epoc           34    8    35    8    31    8    31    8    31    8
+ h2pl           24   15    24   15    12   15    12   15    12   15
+ hints         377   98   381   98   385  100   368   97   368   97
+ mad           182    8   182    8   174    8   174    8   174    8
+ mint           11    9    11    9     3    9     -    -     -    -
+ mpeix          49    6    49    6    45    6    45    6    45    6
+ NetWare       489   61   489   61   465   61   466   61   466   61
+ os2           552   70   552   70   507   70   507   70   507   70
+ plan9         324   17   324   17   316   17   316   17   316   17
+ Porting       627   40   632   40   933   53   749   54   749   54
+ qnx             5    3     5    4     1    4     1    4     1    4
+ symbian       300   54   300   54   290   54   288   54   288   54
+ utils         260   26   264   27   268   27   269   27   269   27
+ uts            12    3    12    3     8    3     8    3     8    3
+ vmesa          25    4    25    4    21    4    21    4    21    4
+ vms           690   32   722   32   693   30   645   18   645   18
+ vos            19    8    19    8    16    8    16    8    16    8
+ win32        1482   68  1485   68  1497   70  1841   73  1841   73
+ x2p           349   19   349   19   345   19   345   19   345   19
 =head2 SELECTED PATCH SIZES
diff --git a/pod/perlrepository.pod b/pod/perlrepository.pod
index 20b6209..11b2249 100644
--- a/pod/perlrepository.pod
+++ b/pod/perlrepository.pod
  % git push origin orange
 The orange branch has been pushed to GitHub, so you should now send an
-email (see L</Submitting a patch>) with a description of your changes
+email (see L</SUBMITTING A PATCH>) with a description of your changes
  http://github.com/USERNAME/perl/tree/orange
diff --git a/pp_pack.c b/pp_pack.c
index 0670548..0ae8afd 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -1562,9 +1562,11 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
           /* Preliminary length estimate, acceptable for utf8 too */
           if (howlen == e_star || len > (strend - s) * 2)
               len = (strend - s) * 2;
-           sv = sv_2mortal(newSV(len ? len : 1));
-           SvPOK_on(sv);
-           str = SvPVX(sv);
+           if (!checksum) {
+               sv = sv_2mortal(newSV(len ? len : 1));
+               SvPOK_on(sv);
+               str = SvPVX(sv);
+           }
           if (datumtype == 'h') {
               U8 bits = 0;
               I32 ai32 = len;
@@ -1574,7 +1576,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                       if (s >= strend) break;
                       bits = uni_to_byte(aTHX_ &s, strend, datumtype);
                   } else bits = * (U8 *) s++;
-                   *str++ = PL_hexdigit[bits & 15];
+                   if (!checksum)
+                       *str++ = PL_hexdigit[bits & 15];
               }
           } else {
               U8 bits = 0;
@@ -1585,12 +1588,15 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                       if (s >= strend) break;
                       bits = uni_to_byte(aTHX_ &s, strend, datumtype);
                   } else bits = *(U8 *) s++;
-                   *str++ = PL_hexdigit[(bits >> 4) & 15];
+                   if (!checksum)
+                       *str++ = PL_hexdigit[(bits >> 4) & 15];
               }
           }
-           *str = '\0';
-           SvCUR_set(sv, str - SvPVX_const(sv));
-           XPUSHs(sv);
+           if (!checksum) {
+               *str = '\0';
+               SvCUR_set(sv, str - SvPVX_const(sv));
+               XPUSHs(sv);
+           }
           break;
       }
@@ -2123,7 +2129,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
           break;
 #endif
-           {
+           if (!checksum) {
                const STRLEN l = (STRLEN) (strend - s) * 3 / 4;
               sv = sv_2mortal(newSV(l));
               if (l) SvPOK_on(sv);
@@ -2141,7 +2147,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                       hunk[0] = (char)((a << 2) | (b >> 4));
                       hunk[1] = (char)((b << 4) | (c >> 2));
                       hunk[2] = (char)((c << 6) | d);
-                       sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
+                       if (!checksum)
+                           sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
                       len -= 3;
                   }
                   if (s < strend) {
@@ -2182,7 +2189,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                       hunk[0] = (char)((a << 2) | (b >> 4));
                       hunk[1] = (char)((b << 4) | (c >> 2));
                       hunk[2] = (char)((c << 6) | d);
-                       sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
+                       if (!checksum)
+                           sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
                       len -= 3;
                   }
                   if (*s == '\n')
@@ -2192,7 +2200,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
                           s += 2;
               }
           }
-           XPUSHs(sv);
+           if (!checksum)
+               XPUSHs(sv);
           break;
       }
diff --git a/t/op/pack.t b/t/op/pack.t
index 4b5f9a5..5775caf 100644
--- a/t/op/pack.t
+++ b/t/op/pack.t
  "Signed/unsigned pack modifiers not available on this perl";
-plan tests => 14697;
+plan tests => 14699;
 use strict;
 use warnings qw(FATAL all);
@@ -1985,3 +1985,11 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
    my ($v) = split //, unpack ('(B)*', 'ab');
    is($v, 0); # Doesn't SEGV :-)
 }
+{
+    #73814
+    my $x = runperl( prog => 'print split( /,/, unpack(q(%2H*), q(hello world))), qq(\n)' );
+    is($x, "0\n", "split /a/, unpack('%2H*'...) didn't crash");
+
+    my $y = runperl( prog => 'print split( /,/, unpack(q(%32u*), q(#,3,Q)), qq(\n)), qq(\n)' );
+    is($y, "0\n", "split /a/, unpack('%32u*'...) didn't crash");
+}
--
Perl5 Master Repository
Jerry D. Hedden
2010-08-09 18:39:27 UTC
Permalink
Post by Steffen Mueller
In perl.git, the branch maint-5.12 has been updated
<http://perl5.git.perl.org/perl.git/commitdiff/a812667ac70fa062909d32a87ad9c756098c49bf?hp=8b81de737b11be97cfb1c5d0fdb93573cc3f5002>
- Log -----------------------------------------------------------------
...
Post by Steffen Mueller
commit 1034633874902704c77f920090df30c42cfc8216
Date:   Fri Apr 23 19:28:35 2010 +1000
   RT#73814 - unpack() didn't handle scalar context correctly for %32H and %32u
   split() would crash because the third item on the stack wasn't the
   regular expression it expected.  unpack("%2H", ...) would return both
   the unpacked result and the checksum on the stack, similarly for
   unpack("%2u", ...).
M       pp_pack.c
M       t/op/pack.t
The following commit should also be applied to maint-5.12:

commit 3297d27d658a6691c429e496bd2a05fe04eda9d7
Author: Vincent Pit <***@profvince.com>
Date: Tue May 4 10:43:07 2010 +0200

Silence a couple of false positive "may be used uninitialized" gcc warnings

as it fixes the warnings from commit 1034633874902704c77f920090df30c42cfc8216.
Loading...