diff options
author | schnetter <schnetter@0f49ee68-0e4f-0410-9b9c-b2c123ded7ef> | 2004-12-29 22:45:05 +0000 |
---|---|---|
committer | schnetter <schnetter@0f49ee68-0e4f-0410-9b9c-b2c123ded7ef> | 2004-12-29 22:45:05 +0000 |
commit | a4c7eae668d654a032f12f72204ee90fc8a78d74 (patch) | |
tree | a9c7d1005afdaac27a8cdb6896c10e0ad8588915 | |
parent | 533576d6618029a465155dcba166adf478400dbe (diff) |
Prevent integer overflow when checking stencil position
git-svn-id: http://svn.aei.mpg.de/numrel/AEIThorns/AEILocalInterp/trunk@27 0f49ee68-0e4f-0410-9b9c-b2c123ded7ef
-rw-r--r-- | src/molecule_posn.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/molecule_posn.c b/src/molecule_posn.c index 1eb4eeb..efa04d9 100644 --- a/src/molecule_posn.c +++ b/src/molecule_posn.c @@ -216,12 +216,14 @@ fp fp_i_center = IS_EVEN(molecule_size) /* ... as a floating-point number */ int int_i_center = (int) fp_i_center; /* ... as an integer */ /* then clamp the molecule at the grid boundaries */ -if (int_i_center - mr_minus < grid_i_min) +if (int_i_center < grid_i_min) int_i_center = grid_i_min; +if (int_i_center < grid_i_min + mr_minus) then { int_i_center = grid_i_min + mr_minus; fp_i_center = (fp) int_i_center; } -if (int_i_center + mr_plus > grid_i_max) +if (int_i_center > grid_i_max) int_i_center = grid_i_max; +if (int_i_center > grid_i_max - mr_plus) then { int_i_center = grid_i_max - mr_plus; fp_i_center = (fp) int_i_center; |