From a4c7eae668d654a032f12f72204ee90fc8a78d74 Mon Sep 17 00:00:00 2001 From: schnetter Date: Wed, 29 Dec 2004 22:45:05 +0000 Subject: 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 --- src/molecule_posn.c | 6 ++++-- 1 file 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; -- cgit v1.2.3