[perl-SOAP-Lite] Fix sending a large object
Petr Pisar
ppisar at fedoraproject.org
Mon May 6 12:41:23 UTC 2013
commit 9369e07e2a8a19e2873205461a203de004f209c6
Author: Petr Písař <ppisar at redhat.com>
Date: Mon May 6 14:38:32 2013 +0200
Fix sending a large object
...715-Accept-more-digit-number-in-_traverse.patch | 71 ++++++++++++++++++++
perl-SOAP-Lite.spec | 14 +++-
2 files changed, 81 insertions(+), 4 deletions(-)
---
diff --git a/SOAP-Lite-0.715-Accept-more-digit-number-in-_traverse.patch b/SOAP-Lite-0.715-Accept-more-digit-number-in-_traverse.patch
new file mode 100644
index 0000000..9d453b4
--- /dev/null
+++ b/SOAP-Lite-0.715-Accept-more-digit-number-in-_traverse.patch
@@ -0,0 +1,71 @@
+From fc370b31446533cc74a03f2af3949370a07e9980 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar at redhat.com>
+Date: Mon, 6 May 2013 14:22:16 +0200
+Subject: [PATCH] Accept more-digit number in _traverse()
+
+When sending a large object (many levels deep) through SOAP::Lite,
+you got an error: Incorrect parameter at
+/usr/lib/perl5/site_perl/5.8.8/SOAP/Lite.pm line 1993.
+
+This fixes wrong check for a number.
+
+Thanks to aharper[...]ecstuning.com and TONVOON[...]cpan.org.
+
+<https://rt.cpan.org/Public/Bug/Display.html?id=78692>
+---
+ lib/SOAP/Lite.pm | 2 +-
+ t/02-payload.t | 11 ++++++++++-
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/lib/SOAP/Lite.pm b/lib/SOAP/Lite.pm
+index 691e675..a37b27a 100644
+--- a/lib/SOAP/Lite.pm
++++ b/lib/SOAP/Lite.pm
+@@ -1990,7 +1990,7 @@ sub match {
+ sub _traverse {
+ my ($self, $pointer, $itself, $path, @path) = @_;
+
+- die "Incorrect parameter" unless $itself =~/^\d$/;
++ die "Incorrect parameter" unless $itself =~/^\d+$/;
+
+ if ($path && substr($path, 0, 1) eq '{') {
+ $path = join '/', $path, shift @path while @path && $path !~ /}/;
+diff --git a/t/02-payload.t b/t/02-payload.t
+index 6501ac1..1ab5171 100644
+--- a/t/02-payload.t
++++ b/t/02-payload.t
+@@ -10,7 +10,7 @@ BEGIN {
+ use strict;
+ use Test;
+
+-BEGIN { plan tests => 131 }
++BEGIN { plan tests => 133 }
+
+ use SOAP::Lite;
+ $SIG{__WARN__} = sub { ; }; # turn off deprecation warnings
+@@ -97,6 +97,12 @@ my($a, $s, $r, $serialized, $deserialized);
+ <item2 xsi:type="xsd:int">60</item2>
+ <item2 xsi:type="xsd:int">100</item2>
+ <item3 xsi:type="xsd:int">200</item3>
++<item3 xsi:type="xsd:int">200</item3>
++<item4 xsi:type="xsd:int">200</item4>
++<item4 xsi:type="xsd:int">200</item4>
++<item5 xsi:type="xsd:int">400</item5>
++<item5 xsi:type="xsd:int">450</item5>
++<item6 xsi:type="xsd:int">600</item6>
+ </nums>
+ </m:doublerResponse>
+ </soap:Body>
+@@ -108,6 +114,9 @@ my($a, $s, $r, $serialized, $deserialized);
+ ok($deserialized->valueof("$result/[1]") == 20);
+ ok($deserialized->valueof("$result/[3]") == 60);
+ ok($deserialized->valueof("$result/[5]") == 200);
++ ok($deserialized->valueof("$result/[9]") == 400);
++ # Test more than 9 items to check depth is okay - RT78692
++ ok($deserialized->valueof("$result/[11]") == 600);
+
+ # match should return true/false in boolean context (and object ref otherwise)
+ ok($deserialized->match('aaa') ? 0 : 1);
+--
+1.8.1.4
+
diff --git a/perl-SOAP-Lite.spec b/perl-SOAP-Lite.spec
index cef51f8..7b2cea1 100644
--- a/perl-SOAP-Lite.spec
+++ b/perl-SOAP-Lite.spec
@@ -1,15 +1,18 @@
Name: perl-SOAP-Lite
Version: 0.715
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Client and server side SOAP implementation
License: GPL+ or Artistic
Group: Development/Libraries
URL: http://search.cpan.org/dist/SOAP-Lite/
Source0: http://search.cpan.org/CPAN/authors/id/M/MK/MKUTTER/SOAP-Lite-%{version}.tar.gz
Patch0: perl-SOAP-Lite-0.715-IO-modules.patch
+# bug #960011, CPAN RT#78692
+Patch1: SOAP-Lite-0.715-Accept-more-digit-number-in-_traverse.patch
BuildArch: noarch
# Core package
+BuildRequires: perl
BuildRequires: perl(Class::Inspector)
BuildRequires: perl(constant)
BuildRequires: perl(MIME::Base64)
@@ -66,7 +69,8 @@ client and server side.
%prep
%setup -q -n SOAP-Lite-%{version}
-%patch0 -p1 -b .IO
+%patch0 -p1
+%patch1 -p1
find examples -type f -exec chmod ugo-x {} \;
%build
@@ -74,9 +78,8 @@ perl Makefile.PL --noprompt INSTALLDIRS=vendor
make %{?_smp_mflags}
%install
-make pure_install PERL_INSTALL_ROOT=%{buildroot}
+make pure_install DESTDIR=%{buildroot}
find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
-find %{buildroot} -type d -depth -exec rmdir {} 2>/dev/null ';'
chmod -R u+w %{buildroot}/*
%check
@@ -95,6 +98,9 @@ make test
%{_mandir}/man1/*
%changelog
+* Mon May 06 2013 Petr Pisar <ppisar at redhat.com> - 0.715-4
+- Fix sending a large object (bug #960011)
+
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.715-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
More information about the scm-commits
mailing list