Bug #63618 [Dup]: 5.3.19-1~dotdeb.0 32bit arch

From: Date: Tue, 27 Nov 2012 10:59:53 +0000
Subject: Bug #63618 [Dup]: 5.3.19-1~dotdeb.0 32bit arch
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-174962@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=63618&edit=1

 ID:                 63618
 Updated by:         johannes@php.net
 Reported by:        roman dot hlynovskiy at gmail dot com
 Summary:            5.3.19-1~dotdeb.0 32bit arch
 Status:             Duplicate
 Type:               Bug
 Package:            Filesystem function related
 Operating System:   linux
 PHP Version:        5.3.19
 Block user comment: N
 Private report:     N

 New Comment:

PHP's internal integer type is a signed long. with 32bit 2336962885 is out of
range. While properly printing it gives you the correct value: 

php -r 'printf("%u", -1958004411);'
2336962885

Besides that there are projects for large file support (while that's not as relevant on most
64bit systems [except windows 64bit] these days where it works out of the box) and for aritrary size
"integer" types. But both projects aren't trivial due to the wayand amount of 3rd
party libraries PHP interacts with. If you have a constructive proposal/solution for those
we're more than happy to implement those, though.


Previous Comments:
------------------------------------------------------------------------
[2012-11-27 07:11:39] roman dot hlynovskiy at gmail dot com

hmm, feature is something missing in a product, however this one is a plain bug.
perl, python, 3-line c program, stat, ls they all return correct size. what is wrong with php to
return correct filesize?
this is strace cut:
---
stat64("/home/data/bigfile.data", {st_mode=S_IFREG|0644, st_size=2336962885, ...}) = 0
write(1, "-1958004411\n", 12-1958004411
---
it's clear that from system level correct size is returned. it's a matter of using correct
types to store and return the value from php perspective

------------------------------------------------------------------------
[2012-11-27 06:40:45] pajoye@php.net

LFS is not supported by default. See other feature requests about this issue.

------------------------------------------------------------------------
[2012-11-27 06:16:05] roman dot hlynovskiy at gmail dot com

Description:
------------
filesize returns negative values for big files

Test script:
---------------
$f = '/home/bigfile.data';
$s = filesize($f);
print "$s\n";


Expected result:
----------------
2336962885

Actual result:
--------------
-1958004411


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



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


Thread (9 messages)

« previous php.bugs (#174962) next »