From: Immad Mir <mirimmad17@xxxxxxxxx> debugfs_create_dir and debugfs_create_symlink return ERR_PTR incase of a failure which must be checked with the inline function IS_ERR. This patch attempts to do the same. Signed-off-by: Immad Mir <mirimmad17@xxxxxxxxx> --- Changes in v2: - Fix indentation - Fix potential memory leak drivers/block/drbd/drbd_debugfs.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/block/drbd/drbd_debugfs.c b/drivers/block/drbd/drbd_debugfs.c index 12460b584..ab431a3f2 100644 --- a/drivers/block/drbd/drbd_debugfs.c +++ b/drivers/block/drbd/drbd_debugfs.c @@ -781,6 +781,7 @@ void drbd_debugfs_device_add(struct drbd_device *device) snprintf(vnr_buf, sizeof(vnr_buf), "%u", device->vnr); dentry = debugfs_create_dir(vnr_buf, vols_dir); + if (IS_ERR(dentry)) goto fail; device->debugfs_vol = dentry; snprintf(minor_buf, sizeof(minor_buf), "%u", device->minor); @@ -789,9 +790,15 @@ void drbd_debugfs_device_add(struct drbd_device *device) if (!slink_name) goto fail; dentry = debugfs_create_symlink(minor_buf, drbd_debugfs_minors, slink_name); - device->debugfs_minor = dentry; - kfree(slink_name); - slink_name = NULL; + if (!IS_ERR(dentry)) { + device->debugfs_minor = dentry; + kfree(slink_name); + slink_name = NULL; + } else { + kfree(slink_name); + slink_name = NULL; + goto fail; + } #define DCF(name) do { \ dentry = debugfs_create_file(#name, 0440, \ -- 2.40.0