Yi reported [1] the key blob is not removed after an overwrite operation is
performed. Issue is discovered when running ndtest. Add the key blob
removal call to address the issue.

[1]: https://github.com/pmem/ndctl/issues/239

Fixes: 8e4193885357 ("ndctl: add an overwrite option to 'sanitize-dimm'")
Reported-by: Yi Zhang <[email protected]>
Signed-off-by: Dave Jiang <[email protected]>
---
 ndctl/keys.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ndctl/keys.c b/ndctl/keys.c
index 2c1f474896c6..3fa076402cfc 100644
--- a/ndctl/keys.c
+++ b/ndctl/keys.c
@@ -658,7 +658,7 @@ int ndctl_dimm_overwrite_key(struct ndctl_dimm *dimm)
        int rc;
 
        key = check_dimm_key(dimm, false, ND_USER_KEY);
-       if (key < 0)
+       if (key < 0 && key != -ENOKEY)
                return key;
 
        rc = run_key_op(dimm, key, ndctl_dimm_overwrite,
@@ -666,5 +666,8 @@ int ndctl_dimm_overwrite_key(struct ndctl_dimm *dimm)
        if (rc < 0)
                return rc;
 
+       if (key >= 0)
+               discard_key(dimm, ND_USER_KEY);
+
        return 0;
 }



Reply via email to