From 2f2a09adbc148d7958be66b00b68ab0609043523 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Tue, 29 Oct 2019 12:39:50 +0000 Subject: block: mount_device: err log only when mp deviates from spec Fixes possible memleak of mp as well Resolves FS#1523 Signed-off-by: Yousong Zhou --- block.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/block.c b/block.c index 084e7fc..1972c50 100644 --- a/block.c +++ b/block.c @@ -1092,10 +1092,14 @@ static int mount_device(struct device *dev, int type) return -1; mp = find_mount_point(pr->dev); - if (mp && (type != TYPE_HOTPLUG)) { - ULOG_ERR("%s is already mounted on %s\n", pr->dev, mp); + if (mp) { + if (m && m->type == TYPE_MOUNT && strcmp(m->target, mp)) { + ULOG_ERR("%s is already mounted on %s\n", pr->dev, mp); + err = -1; + } else + err = 0; free(mp); - return -1; + return err; } if (type == TYPE_HOTPLUG) -- cgit v1.2.1