Index: lib/geom/eli/geom_eli.c =================================================================== --- lib/geom/eli/geom_eli.c +++ lib/geom/eli/geom_eli.c @@ -937,9 +937,11 @@ /* Backupfile given by the user, just copy it. */ strlcpy(backfile, str, sizeof(backfile)); - /* Make the backup filename unique if multiple providers - * initialized in one command. */ - if (nargs > 1) { + /* If multiple providers have been initialized in one + * command, and the backup filename has been specified + * as anything other than "none", make the backup + * filename unique for each provider. */ + if (nargs > 1 && strcmp(backfile, "none") != 0) { /* * Replace first occurrence of "PROV" with * provider name. @@ -999,11 +1001,13 @@ gctl_free(r); /* - * Erase sensitive data from memory, and ensure subsequent - * providers are initialized with unique metadata. + * Erase sensitive and provider specific data from memory. */ explicit_bzero(key, sizeof(key)); - explicit_bzero(&md, sizeof(md)); + explicit_bzero(&md.md_provsize, sizeof(md.md_provsize)); + explicit_bzero(&md.md_sectorsize, sizeof(md.md_sectorsize)); + explicit_bzero(&md.md_salt, sizeof(md.md_salt)); + explicit_bzero(&md.md_mkeys, sizeof(md.md_mkeys)); } /* Clear the cached metadata, including keys. */