From 10bb186c76aa4f656652a59a4e10aa38d48f405e Mon Sep 17 00:00:00 2001 From: Ondrej Kozina Date: Fri, 23 Jun 2017 16:55:22 +0200 Subject: [PATCH] lib: harden checks for null name in resume/suspend --- lib/setup.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/setup.c b/lib/setup.c index d10c4bdd..a7474450 100644 --- a/lib/setup.c +++ b/lib/setup.c @@ -1598,6 +1598,9 @@ int crypt_suspend(struct crypt_device *cd, crypt_status_info ci; int r; + if (!name) + return -EINVAL; + log_dbg("Suspending volume %s.", name); if (cd->type) { @@ -1648,15 +1651,15 @@ int crypt_resume_by_passphrase(struct crypt_device *cd, struct volume_key *vk = NULL; int r; - log_dbg("Resuming volume %s.", name); - r = onlyLUKS(cd); if (r < 0) return r; - if (!passphrase) + if (!passphrase || !name) return -EINVAL; + log_dbg("Resuming volume %s.", name); + r = dm_status_suspended(cd, name); if (r < 0) return r; @@ -1694,12 +1697,15 @@ int crypt_resume_by_keyfile_offset(struct crypt_device *cd, size_t passphrase_size_read; int r; - log_dbg("Resuming volume %s.", name); - r = onlyLUKS(cd); if (r < 0) return r; + if (!name) + return -EINVAL; + + log_dbg("Resuming volume %s.", name); + r = dm_status_suspended(cd, name); if (r < 0) return r;