| Summary: | IO::Uncompress::Unzip->nextStream() does not return 0 at last ZIP stream | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Jan Holcapek <holcapek> | ||||
| Component: | perl | Assignee: | perl-maint-list | ||||
| Status: | CLOSED ERRATA | QA Contact: | Lukáš Zachar <lzachar> | ||||
| Severity: | unspecified | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 6.2 | CC: | holcapek, ppisar, psabata, psplicha | ||||
| Target Milestone: | rc | Keywords: | EasyFix | ||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | perl-5.10.1-126.el6 | Doc Type: | Bug Fix | ||||
| Doc Text: |
Cause
Calling nextStream() method on IO::Uncompress::Unzip object
with last stream in ZIP decoder.
Consequence
IO::Uncompress::Unzip::nextStream does not return 0 as
documented which can change application code path. For example
infinite cycle.
Fix
Fix from upstream version 2.030 has been back-ported.
Result
IO::Uncompress::Unzip::nextStream behaves as documented now.
|
Story Points: | --- | ||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2012-06-20 13:47:45 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Attachments: |
|
||||||
|
Description
Jan Holcapek
2012-03-23 15:09:16 UTC
Created attachment 572755 [details]
Reproducer
This automated test gives up waiting for nextStream() cycle in 5 second.
This is working fix from 2.030:
--- IO-Compress-2.027/lib/IO/Uncompress/Base.pm 2010-04-24 11:42:55.000000000 +0200
+++ IO-Compress-2.030/lib/IO/Uncompress/Base.pm 2010-07-24 13:49:13.000000000 +0200
@@ -980,7 +980,7 @@
#*$self->{EndStream} = 0 ;
if ( ! defined $magic) {
- if (! *$self->{Transparent} )
+ if (! *$self->{Transparent} || $self->eof())
{
*$self->{EndStream} = 1 ;
return 0;
No rebase is needed. I will prepare patch against big perl source package.
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
New Contents:
Cause
Running IO::Uncompress::Unzip->nextStream() on last ZIP stream.
Consequence
IO::Uncompress::Unzip::nextStream does not return 0 as
documented which can change application code path. For example
infinite cycle.
Fix
Fix from upstream version 2.030 has been back-ported.
Result
IO::Uncompress::Unzip::nextStream behaves as documented now.
Technical note updated. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
Diffed Contents:
@@ -1,5 +1,6 @@
Cause
- Running IO::Uncompress::Unzip->nextStream() on last ZIP stream.
+ Calling nextStream() method on IO::Uncompress::Unzip object
+ with last stream in ZIP decoder.
Consequence
IO::Uncompress::Unzip::nextStream does not return 0 as
documented which can change application code path. For example
Thanks for pulling this in! (In Czech: Diky, Petre!) Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2012-0843.html |