[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