From: Steve Langasek Date: Sat, 8 May 2021 10:58:01 +0000 (+0000) Subject: Ensure that our variable checking for >= 0 is signed X-Git-Tag: archive/raspbian/0.1+git20221215.85f159e-1+rpi1~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c8f2f9a8a23b73b01523eef7a42ea0910a426ee0;p=fermi-lite.git Ensure that our variable checking for >= 0 is signed Last-Update: 2020-03-17 Bug-Debian: https://bugs.debian.org/954127 The type of v->n is size_t, which is an unsigned type, and we are assigning v->n - 1 to i and looping while this is >= 0. If v->n == 0, on some architectures (armhf) this results in i being set to a positive value (specifically, UINT32_MAX). Gbp-Pq: Name ensure-signed-comparison.patch --- diff --git a/mag.c b/mag.c index acdca29..f9364c9 100644 --- a/mag.c +++ b/mag.c @@ -506,7 +506,7 @@ double mag_cal_rdist(mag_t *g) for (j = 0; j < 2; ++j) { sum_n = sum_l = 0; - for (i = v->n - 1; i >= 0; --i) { + for (i = (int64_t)v->n - 1; i >= 0; --i) { const magv_t *p = &v->a[srt[i]<<32>>32]; int tmp1, tmp2; tmp1 = tmp2 = 0;