]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
fix: Monitor sometimes crashes
authorLukasz Dorau <lukasz.dorau@intel.com>
Wed, 11 Jan 2012 23:40:00 +0000 (10:40 +1100)
committerNeilBrown <neilb@suse.de>
Wed, 11 Jan 2012 23:40:00 +0000 (10:40 +1100)
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>
Monitor.c

index 8bc8824772c7c0594dafbb2642a2b2c37ddedbbb..77f22aa37a006d2988671674ea450da23ebd2f89 100644 (file)
--- 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