diff options
Diffstat (limited to 'drivers/md/dm-crypt.c')
-rw-r--r-- | drivers/md/dm-crypt.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c index 64fee90bb68b..ecd9ef0418cd 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c | |||
@@ -861,7 +861,7 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv) | |||
861 | cc->iv_mode = kmalloc(strlen(ivmode) + 1, GFP_KERNEL); | 861 | cc->iv_mode = kmalloc(strlen(ivmode) + 1, GFP_KERNEL); |
862 | if (!cc->iv_mode) { | 862 | if (!cc->iv_mode) { |
863 | ti->error = "Error kmallocing iv_mode string"; | 863 | ti->error = "Error kmallocing iv_mode string"; |
864 | goto bad5; | 864 | goto bad_iv_mode; |
865 | } | 865 | } |
866 | strcpy(cc->iv_mode, ivmode); | 866 | strcpy(cc->iv_mode, ivmode); |
867 | } else | 867 | } else |
@@ -870,6 +870,8 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv) | |||
870 | ti->private = cc; | 870 | ti->private = cc; |
871 | return 0; | 871 | return 0; |
872 | 872 | ||
873 | bad_iv_mode: | ||
874 | dm_put_device(ti, cc->dev); | ||
873 | bad5: | 875 | bad5: |
874 | bioset_free(cc->bs); | 876 | bioset_free(cc->bs); |
875 | bad_bs: | 877 | bad_bs: |