]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Manage.c
imsm: honor orom constraints for auto-layout
[thirdparty/mdadm.git] / Manage.c
index 9217139e8780763e86b4270d8cd0fcef541e040c..fb9b9723bac28d0f9e8df72f2035729fe34a0004 100644 (file)
--- a/Manage.c
+++ b/Manage.c
@@ -140,7 +140,7 @@ static void remove_devices(int devnum, char *path)
                strcpy(path2, path);
                pe = path2 + strlen(path2);
        } else
-               path = NULL;
+               path2 = path = NULL;
        
        for (part = 0; part < 16; part++) {
                if (part) {
@@ -161,6 +161,7 @@ static void remove_devices(int devnum, char *path)
                                unlink(path2);
                }
        }
+       free(path2);
 }
        
 
@@ -577,6 +578,12 @@ int Manage_subdevs(char *devname, int fd,
                                                /* fall back on normal-add */
                                        }
                                }
+                               if (dv->re_add) {
+                                       fprintf(stderr, Name
+                                               ": --re-add for %s to %s is not possible\n",
+                                               dv->devname, devname);
+                                       return 1;
+                               }
                        } else {
                                /* non-persistent. Must ensure that new drive
                                 * is at least array.size big.
@@ -649,6 +656,7 @@ int Manage_subdevs(char *devname, int fd,
                                                disc.state |= (1<<MD_DISK_SYNC);
                                                break;
                                        }
+                               free(used);
                        }
                        if (dv->writemostly == 1)
                                disc.state |= (1 << MD_DISK_WRITEMOSTLY);