]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
FIX: Prevent using null list pointer
authorNeilBrown <neilb@suse.de>
Wed, 7 Sep 2011 02:45:24 +0000 (12:45 +1000)
committerNeilBrown <neilb@suse.de>
Wed, 7 Sep 2011 02:45:24 +0000 (12:45 +1000)
When not all attributes are supported (attributes incompatibility)
function container_content_imsm returns NULL pointer.
We need to cope with a NULL list better.

Reported-by: Lukasz Dorau <lukasz.dorau@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Incremental.c
policy.c

index 951c2a0743cd115c9fe07b5316986d70507fd898..09cdd9b403cd507077015094be03117a5a3c69ec 100644 (file)
@@ -1464,7 +1464,7 @@ static int Incremental_container(struct supertype *st, char *devname,
                fprintf(stderr, Name ": failed to get exclusive lock on "
                        "mapfile\n");
        /* do not assemble arrays that might have bad blocks */
-       if (list->array.state & (1<<MD_SB_BBM_ERRORS)) {
+       if (list && list->array.state & (1<<MD_SB_BBM_ERRORS)) {
                fprintf(stderr, Name ": BBM log found in metadata. "
                                        "Cannot activate array(s).\n");
                /* free container data and exit */
index ebb1481409aede18f51f39eb50afd38e52f44caf..2bbbac86492d53970d29f497b381f70edc17d19e 100644 (file)
--- a/policy.c
+++ b/policy.c
@@ -678,6 +678,8 @@ struct domainlist *domain_from_array(struct mdinfo *mdi, const char *metadata)
 {
        struct domainlist *domlist = NULL;
 
+       if (!mdi)
+               return NULL;
        for (mdi = mdi->devs ; mdi ; mdi = mdi->next)
                domainlist_add_dev(&domlist, makedev(mdi->disk.major,
                                                     mdi->disk.minor),