Merge pull request #667 from OpenWaterAnalytics/dev-fix-tanktimestep
Fixes possible integer overflow
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
Authors: see AUTHORS
|
||||
Copyright: see AUTHORS
|
||||
License: see LICENSE
|
||||
Last Updated: 02/03/2020
|
||||
Last Updated: 03/19/2022
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
@@ -668,7 +668,7 @@ int tanktimestep(Project *pr, long *tstep)
|
||||
Hydraul *hyd = &pr->hydraul;
|
||||
|
||||
int i, n, tankIdx = 0;
|
||||
double h, q, v;
|
||||
double h, q, v, xt;
|
||||
long t;
|
||||
Stank *tank;
|
||||
|
||||
@@ -691,7 +691,9 @@ int tanktimestep(Project *pr, long *tstep)
|
||||
else continue;
|
||||
|
||||
// Find time to fill/drain tank
|
||||
t = (long)ROUND(v / q);
|
||||
xt = v / q;
|
||||
if (ABS(xt) > *tstep + 1) continue;
|
||||
t = (long)ROUND(xt);
|
||||
if (t > 0 && t < *tstep)
|
||||
{
|
||||
*tstep = t;
|
||||
|
||||
@@ -7,7 +7,7 @@ Description: parses network data from a line of an EPANET input file
|
||||
Authors: see AUTHORS
|
||||
Copyright: see AUTHORS
|
||||
License: see LICENSE
|
||||
Last Updated: 11/29/2019
|
||||
Last Updated: 03/20/2022
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
@@ -2159,6 +2159,7 @@ void changestatus(Network *net, int j, StatusType status, double y)
|
||||
if (y == 0.0) status = CLOSED;
|
||||
}
|
||||
else if (status == OPEN) link->Kc = 1.0;
|
||||
else if (status == CLOSED) link->Kc = 0.0;
|
||||
link->Status = status;
|
||||
}
|
||||
else if (link->Type >= PRV)
|
||||
|
||||
Reference in New Issue
Block a user