From: Yousong Zhou Date: Tue, 29 Oct 2019 12:39:50 +0000 (+0000) Subject: block: mount_device: err log only when mp deviates from spec X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2f2a09adbc148d7958be66b00b68ab0609043523;p=oweals%2Ffstools.git 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 --- 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)