php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #12505 array_sum function total calculate error
Submitted: 2001-08-01 04:02 UTC Modified: 2001-08-03 15:15 UTC
From: omeroz at kamilkoc dot com dot tr Assigned: jeroen (profile)
Status: Closed Package: Arrays related
PHP Version: latest CVS (08/01/01) OS: Red Hat Linux 6.1
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: omeroz at kamilkoc dot com dot tr
New email:
PHP Version: OS:

 

 [2001-08-01 04:02 UTC] omeroz at kamilkoc dot com dot tr
$tt=array(382478633,367687181,452504275,471367521,848270658,1181944543);
$total_tt=array_sum($tt);
echo "Total_tt=".$total_tt;

// Prints  Total_tt=-590714485

Must be 3704252811.



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-08-01 05:56 UTC] jmcastagnetto@php.net
The problem is with the typecasting to LONG, if you use the code:

<?php
$tt=array(382478633.0,367687181.0,452504275.0,471367521.0,848270658.0,1181944543.0);
echo array_sum($tt)."\n";
?>

The result is the correct one (3704252811)

Solution would be to

1) use floating point representation for bign numbers in PHP code (add caveat to the manual perhaps?)

or

2) check that the array_sum result is nor overflowing LONG in the C code implementation and bump the type to DOUBLE if it does.

second option would be better IMHO
 [2001-08-01 08:36 UTC] andy@php.net
status -> analyzed
 [2001-08-01 16:55 UTC] jeroen@php.net
Hm, same problem as the other overflow-things. Assigned to myself.

Are there other dangerous functions like this anywhere?
 [2001-08-03 15:15 UTC] jeroen@php.net
Fixed in CVS, will be in 4.0.7
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri May 03 00:01:31 2024 UTC