#40710 [NEW]: str_ireplace crashes when working on array argument when no match found

Ask a Question related to PHP Bugs, Design and Development.

  1. #1

    Default #40710 [NEW]: str_ireplace crashes when working on array argument when no match found

    From: zend at ryank dot net
    Operating system: Windows XP SP2
    PHP version: 5.2.1
    PHP Bug Type: Strings related
    Bug description: str_ireplace crashes when working on array argument when no match found

    Description:
    ------------
    Using str_ireplace on array elements passed to a function causes PHP crash
    or apache(2.2.4) crash if the needle is not found.

    In the repo code, if you use the line:

    $record = array('DocumentDate' => '2007-03-02');

    It will function correctly.

    Workaround: use str_replace

    Reproduce code:
    ---------------
    function test($rec)
    {
    $preped = array();
    $preped['DocumentDate'] = str_ireplace('-','',$rec['DocumentDate']);

    print ' prep okay? ';
    return $preped;
    }


    $record = array('DocumentDate' => '20070302');

    print ' alive ';

    $record = test($record);

    print_r($record);

    print ' alive ';

    Expected result:
    ----------------
    alive prep okay? Array ( [DocumentDate] => 20070302 ) alive

    Actual result:
    --------------
    php crash or apache crash referencing php5ts.dll

    --
    Edit bug report at [url]http://bugs.php.net/?id=40710&edit=1[/url]
    --
    Try a CVS snapshot (PHP 4.4): [url]http://bugs.php.net/fix.php?id=40710&r=trysnapshot44[/url]
    Try a CVS snapshot (PHP 5.2): [url]http://bugs.php.net/fix.php?id=40710&r=trysnapshot52[/url]
    Try a CVS snapshot (PHP 6.0): [url]http://bugs.php.net/fix.php?id=40710&r=trysnapshot60[/url]
    Fixed in CVS: [url]http://bugs.php.net/fix.php?id=40710&r=fixedcvs[/url]
    Fixed in release: [url]http://bugs.php.net/fix.php?id=40710&r=alreadyfixed[/url]
    Need backtrace: [url]http://bugs.php.net/fix.php?id=40710&r=needtrace[/url]
    Need Reproduce Script: [url]http://bugs.php.net/fix.php?id=40710&r=needscript[/url]
    Try newer version: [url]http://bugs.php.net/fix.php?id=40710&r=oldversion[/url]
    Not developer issue: [url]http://bugs.php.net/fix.php?id=40710&r=support[/url]
    Expected behavior: [url]http://bugs.php.net/fix.php?id=40710&r=notwrong[/url]
    Not enough info: [url]http://bugs.php.net/fix.php?id=40710&r=notenoughinfo[/url]
    Submitted twice: [url]http://bugs.php.net/fix.php?id=40710&r=submittedtwice[/url]
    register_globals: [url]http://bugs.php.net/fix.php?id=40710&r=globals[/url]
    PHP 3 support discontinued: [url]http://bugs.php.net/fix.php?id=40710&r=php3[/url]
    Daylight Savings: [url]http://bugs.php.net/fix.php?id=40710&r=dst[/url]
    IIS Stability: [url]http://bugs.php.net/fix.php?id=40710&r=isapi[/url]
    Install GNU Sed: [url]http://bugs.php.net/fix.php?id=40710&r=gnused[/url]
    Floating point limitations: [url]http://bugs.php.net/fix.php?id=40710&r=float[/url]
    No Zend Extensions: [url]http://bugs.php.net/fix.php?id=40710&r=nozend[/url]
    MySQL Configuration Error: [url]http://bugs.php.net/fix.php?id=40710&r=mysqlcfg[/url]
    zend at ryank dot net Guest

  2. Similar Questions and Discussions

    1. ambiguous match found
      see code & error below. i noticed that the page parser only calles the set property so i decided to program it like below so that the set...
    2. #25176 [Opn]: CLI Crashes with entry point not found in php4ts.dll
      ID: 25176 Updated by: davey@php.net Reported By: davey@php.net Status: Open Bug Type: Zend Engine 2...
    3. #25176 [Bgs->Opn]: CLI Crashes with entry point not found in php4ts.dll
      ID: 25176 Updated by: davey@php.net Reported By: davey@php.net -Status: Bogus +Status: Open Bug...
    4. #25176 [Ver->Asn]: CLI Crashes with entry point not found in php4ts.dll
      ID: 25176 Updated by: sniper@php.net Reported By: davey@php.net -Status: Verified +Status: Assigned...
    5. #25176 [NEW]: CLI Crashes with entry point not found in php4ts.dll
      From: davey@php.net Operating system: WinXP Pro SP1 PHP version: 5CVS-2003-08-20 (dev) PHP Bug Type: Reproducible crash Bug...
  3. #2

    Default #40710 [Opn->Csd]: str_ireplace crashes when working on array argument when no match found

    ID: 40710
    Updated by: [email]iliaa@php.net[/email]
    Reported By: zend at ryank dot net
    -Status: Open
    +Status: Closed
    Bug Type: Strings related
    Operating System: Windows XP SP2
    PHP Version: 5.2.1
    New Comment:

    This bug has been fixed in CVS.

    Snapshots of the sources are packaged every three hours; this change
    will be in the next snapshot. You can grab the snapshot at
    [url]http://snaps.php.net/[/url].

    Thank you for the report, and for helping us make PHP better.




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

    [2007-03-03 16:47:00] zend at ryank dot net

    Description:
    ------------
    Using str_ireplace on array elements passed to a function causes PHP
    crash or apache(2.2.4) crash if the needle is not found.

    In the repo code, if you use the line:

    $record = array('DocumentDate' => '2007-03-02');

    It will function correctly.

    Workaround: use str_replace

    Reproduce code:
    ---------------
    function test($rec)
    {
    $preped = array();
    $preped['DocumentDate'] =
    str_ireplace('-','',$rec['DocumentDate']);

    print ' prep okay? ';
    return $preped;
    }


    $record = array('DocumentDate' => '20070302');

    print ' alive ';

    $record = test($record);

    print_r($record);

    print ' alive ';

    Expected result:
    ----------------
    alive prep okay? Array ( [DocumentDate] => 20070302 ) alive

    Actual result:
    --------------
    php crash or apache crash referencing php5ts.dll


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


    --
    Edit this bug report at [url]http://bugs.php.net/?id=40710&edit=1[/url]
    iliaa@php.net Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139