aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/geoptimiser.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/geoptimiser.c b/src/geoptimiser.c
index 4ba2c5d0..f7894787 100644
--- a/src/geoptimiser.c
+++ b/src/geoptimiser.c
@@ -631,10 +631,18 @@ static int add_distance_to_list(struct gpanel *gp,
double *det_shift)
{
int pix_index;
+ int ifs, iss;
double rfs, rss;
double crx, cry;
- pix_index = ((int)rint(imfe->fs) + gp->p->w*(int)rint(imfe->ss));
+ ifs = imfe->fs;
+ iss = imfe->ss; /* Explicit rounding towards zero (truncation) */
+ pix_index = ifs + gp->p->w*iss;
+
+ if ( (ifs >= gp->p->w) || (iss >= gp->p->h) ) {
+ ERROR("Peak is outside panel!\n");
+ return 1;
+ }
if ( gp->num_pix_displ[pix_index] > 0 ) {