X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=Monitor.c;h=af531294cc53c908ea7a1b88f7a1e0870c5c62bf;hp=1c190577ab04417473d345ce89047e5896e99674;hb=8844e291492b82f4bae6129673fb383a309514c0;hpb=9c3220067be02b5ef4da6e51ec91f928572d5223 diff --git a/Monitor.c b/Monitor.c index 1c190577..af531294 100644 --- a/Monitor.c +++ b/Monitor.c @@ -165,7 +165,10 @@ int Monitor(mddev_dev_t devlist, if (devlist == NULL) { mddev_ident_t mdlist = conf_get_ident(NULL); for (; mdlist; mdlist=mdlist->next) { - struct state *st = malloc(sizeof *st); + struct state *st; + if (mdlist->devname == NULL) + continue; + st = malloc(sizeof *st); if (st == NULL) continue; st->devname = strdup(mdlist->devname); @@ -431,6 +434,8 @@ int Monitor(mddev_dev_t devlist, st->spare_group = NULL; st->expected_spares = -1; statelist = st; + if (test) + alert("TestMessage", st->devname, NULL, mailaddr, mailfrom, alert_cmd, dosyslog); alert("NewArray", st->devname, NULL, mailaddr, mailfrom, alert_cmd, dosyslog); new_found = 1; } @@ -613,7 +618,7 @@ int Wait(char *dev) break; if (!e || e->percent < 0) { - if (e && + if (e && e->metadata_version && strncmp(e->metadata_version, "external:", 9) == 0) { if (is_subarray(&e->metadata_version[9])) ping_monitor(&e->metadata_version[9]); @@ -623,7 +628,7 @@ int Wait(char *dev) free_mdstat(ms); return rv; } - free(ms); + free_mdstat(ms); rv = 0; mdstat_wait(5); }