aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschnetter <schnetter@0f49ee68-0e4f-0410-9b9c-b2c123ded7ef>2004-12-29 22:45:05 +0000
committerschnetter <schnetter@0f49ee68-0e4f-0410-9b9c-b2c123ded7ef>2004-12-29 22:45:05 +0000
commita4c7eae668d654a032f12f72204ee90fc8a78d74 (patch)
treea9c7d1005afdaac27a8cdb6896c10e0ad8588915
parent533576d6618029a465155dcba166adf478400dbe (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.c6
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;