#39588 [NEW]: unpack("a*", "abc\0") does not work as expected

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

  1. #1

    Default #39588 [NEW]: unpack("a*", "abc\0") does not work as expected

    From: pprasse at actindo dot de
    Operating system: linux 2.6.10
    PHP version: 4.4.4
    PHP Bug Type: Scripting Engine problem
    Bug description: unpack("a*", "abc\0") does not work as expected

    Description:
    ------------
    unpack( "a*", $string ) does not work as expected when last character of
    $string is "\0"


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

    $string = "abc\0";
    $arr = unpack( "a*buf", $string );
    printf( "strlen = %d\n", strlen($arr['buf']) );
    printf( "hex dump:\t" );
    for( $i=0; $i<strlen($arr['buf']); $i++ )
    printf( " %02x", ord($arr['buf']{$i}) );

    printf( "\n" );

    ?>

    Expected result:
    ----------------
    strlen = 4
    hex dump: 61 62 63 00


    Actual result:
    --------------
    strlen = 3
    hex dump: 61 62 63


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

  2. Similar Questions and Discussions

    1. Proj cannot run on LCDS 2.6 ES due to "Unable to resolveresource bundle "datamanagement" for locale "en_US"
      hi, all, We have developped an application on Flex Build 3 (run successfully), but failed when we try to deploy it on Tomcat with LCDS 2.5 ES...
    2. CFINPUT type="radio" w/ "value" requires "label"
      On a Flash form, when you specify type='radio' and value='whatever', the value of the 'value' attribute will be displayed as a label if no 'label'...
    3. FScommand("Exec","myapplication.exe") doesnot work on Trial version MX?
      i think projector in this case is meant to be a .exe file not a test.swf like you mentioned. goto File, Publish Settings... and there under the...
    4. "Start" "Program" "Menu" list is empty
      For what ever reason my list of installed programs in my "Start" "Programs" menu is empty. Anyone know how to restore the list. Thanks for your...
    5. How to make the "search text" feature work with non "txt" file
      On Fri, 27 Jun 2003 07:19:23 -0700, "Juergen" <anhorn@bktel.com> wrote: See MVP Doug Knox' comments and fix here:...
  3. #2

    Default #39588 [Opn->Bgs]: unpack("a*", "abc\0") does not work as expected

    ID: 39588
    Updated by: [email]tony2001@php.net[/email]
    Reported By: pprasse at actindo dot de
    -Status: Open
    +Status: Bogus
    -Bug Type: Scripting Engine problem
    +Bug Type: Strings related
    Operating System: linux 2.6.10
    PHP Version: 4.4.4
    New Comment:

    Expected behaviour.

    $var = "str";
    $packed = pack("a5", $var); // 5 bytes long NULL-padded string
    var_dump(unpack("a*", $packed)); // the NULL-padding is removed to get
    the original data.


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

    [2006-11-22 14:09:26] pprasse at actindo dot de

    Description:
    ------------
    unpack( "a*", $string ) does not work as expected when last character
    of $string is "\0"


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

    $string = "abc\0";
    $arr = unpack( "a*buf", $string );
    printf( "strlen = %d\n", strlen($arr['buf']) );
    printf( "hex dump:\t" );
    for( $i=0; $i<strlen($arr['buf']); $i++ )
    printf( " %02x", ord($arr['buf']{$i}) );

    printf( "\n" );

    ?>

    Expected result:
    ----------------
    strlen = 4
    hex dump: 61 62 63 00


    Actual result:
    --------------
    strlen = 3
    hex dump: 61 62 63



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


    --
    Edit this bug report at [url]http://bugs.php.net/?id=39588&edit=1[/url]
    tony2001@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