summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukasz Dorau <lukasz.dorau@intel.com>2012-01-12 10:40:00 +1100
committerNeilBrown <neilb@suse.de>2012-01-12 10:40:00 +1100
commit8453f8d0df0111cfd25e984afb7a64153b04bc27 (patch)
tree465a758f494f06382345f1e8f55593dc435bbb3a
parent68226a80812cd9fce63dbd14d2225ffdf16a781b (diff)
fix: Monitor sometimes crashes
The "char cnt [40]" buffer is sometimes too small to hold all message - in such case monitor crashes. The buffer must be larger to be able to hold all message. Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r--Monitor.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Monitor.c b/Monitor.c
index 8bc88247..77f22aa3 100644
--- a/Monitor.c
+++ b/Monitor.c
@@ -563,8 +563,9 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
struct mdinfo *sra =
sysfs_read(-1, st->devnum, GET_MISMATCH);
if (sra && sra->mismatch_cnt > 0) {
- char cnt[40];
- sprintf(cnt, " mismatches found: %d (on raid level %d)",
+ char cnt[80];
+ snprintf(cnt, sizeof(cnt),
+ " mismatches found: %d (on raid level %d)",
sra->mismatch_cnt, array.level);
alert("RebuildFinished", dev, cnt, ainfo);
} else