diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2023-08-31 13:00:00 +0200 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2023-09-05 20:12:52 +0200 |
commit | f59ec04d382d2f2528f439947e215a52703e0094 (patch) | |
tree | d5c9e88eb53d05202530a9cadfb9f859a95acb6a /drivers/s390 | |
parent | s390/zcrypt: don't leak memory if dev_set_name() fails (diff) | |
download | linux-f59ec04d382d2f2528f439947e215a52703e0094.tar.xz linux-f59ec04d382d2f2528f439947e215a52703e0094.zip |
s390/zcrypt: utilize dev_set_name() ability to use a formatted string
With the dev_set_name() prototype it's not obvious that it takes
a formatted string as a parameter. Use its facility instead of
duplicating the same with strncpy()/snprintf() calls.
With this, also prevent return error code to be shadowed.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20230831110000.24279-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/crypto/zcrypt_api.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_api.c index 6b99f7dd0643..ce04caa7913f 100644 --- a/drivers/s390/crypto/zcrypt_api.c +++ b/drivers/s390/crypto/zcrypt_api.c @@ -366,7 +366,6 @@ static int zcdn_create(const char *name) { dev_t devt; int i, rc = 0; - char nodename[ZCDN_MAX_NAME]; struct zcdn_device *zcdndev; if (mutex_lock_interruptible(&ap_perms_mutex)) @@ -407,14 +406,11 @@ static int zcdn_create(const char *name) zcdndev->device.devt = devt; zcdndev->device.groups = zcdn_dev_attr_groups; if (name[0]) - strncpy(nodename, name, sizeof(nodename)); + rc = dev_set_name(&zcdndev->device, "%s", name); else - snprintf(nodename, sizeof(nodename), - ZCRYPT_NAME "_%d", (int)MINOR(devt)); - nodename[sizeof(nodename) - 1] = '\0'; - if (dev_set_name(&zcdndev->device, nodename)) { + rc = dev_set_name(&zcdndev->device, ZCRYPT_NAME "_%d", (int)MINOR(devt)); + if (rc) { kfree(zcdndev); - rc = -EINVAL; goto unlockout; } rc = device_register(&zcdndev->device); |