ID:               51119
 Updated by:       sala...@php.net
 Reported By:      sala...@php.net
-Status:           Open
+Status:           Closed
 Bug Type:         SPL related
 Operating System: OS X
 PHP Version:      5.3.2RC2
 New Comment:

This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------

[2010-02-22 23:55:31] s...@php.net

Automatic comment from SVN on behalf of salathe
Revision: http://svn.php.net/viewvc/?view=revision&revision=295391
Log: Corrected typo in LimitIterator offset exception. Fixes #51119

------------------------------------------------------------------------

[2010-02-22 21:59:57] sala...@php.net

Oops typo in the original message: I said "FilterIterator" in place of,
the correct class, LimitIterator.

------------------------------------------------------------------------

[2010-02-22 21:26:35] sala...@php.net

The tiny, tiny patch (against trunk) would be:

Index: spl_iterators.c
===================================================================
--- spl_iterators.c     (revision 295379)
+++ spl_iterators.c     (working copy)
@@ -1321,7 +1321,7 @@
                                return NULL;
                        }
                        if (intern->u.limit.offset < 0) {
-                               
zend_throw_exception(spl_ce_OutOfRangeException, "Parameter offset
must be > 0", 0 TSRMLS_CC);
+                               
zend_throw_exception(spl_ce_OutOfRangeException, "Parameter offset
must be >= 0", 0 TSRMLS_CC);
                                zend_restore_error_handling(&error_handling 
TSRMLS_CC);
                                return NULL;
                        }


------------------------------------------------------------------------

[2010-02-22 21:24:28] sala...@php.net

Description:
------------
The lower bound of the offset parameter for the FilterIterator is zero
(no offset). When an offset less than zero is given, an
OutOfBoundsException is thrown, incorrectly stating, "Parameter offset
must be > 0".

Reproduce code:
---------------
<?php

$ait = new ArrayIterator(array('a', 'b', 'c'));

try {
    $lit = new LimitIterator($ait, 0);
    echo "OK\n";
} catch (OutOfRangeException $e) {
    echo $e->getMessage() . "\n";
}

try {
    $lit = new LimitIterator($ait, -1);
    echo "OK\n";
} catch (OutOfRangeException $e) {
    echo $e->getMessage() . "\n";
}


Expected result:
----------------
OK
Parameter offset must be >= 0

Actual result:
--------------
OK
Parameter offset must be > 0


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=51119&edit=1

Reply via email to