From b79bf3d187cabd11df74d2e6e414e41ae637f307 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Fri, 17 Sep 2010 14:05:13 +0100 Subject: Bug 628522 - invalid access off end of array in e_bit_array_delete() --- e-util/e-bit-array.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'e-util') diff --git a/e-util/e-bit-array.c b/e-util/e-bit-array.c index 842361d0f2..d8aa620c8d 100644 --- a/e-util/e-bit-array.c +++ b/e-util/e-bit-array.c @@ -75,10 +75,11 @@ e_bit_array_delete_real (EBitArray *eba, gint row, gboolean move_selection_mode) gint i; gint last; gint selected = FALSE; - if (eba->bit_count >= 0) { + + if (eba->bit_count > 0) { guint32 bitmask; box = row >> 5; - last = eba->bit_count >> 5; + last = (eba->bit_count - 1) >> 5; /* Build bitmasks for the left and right half of the box */ bitmask = BITMASK_RIGHT (row) >> 1; -- cgit v1.2.3