Fixes possible memleak of mp as well Resolves FS#1523
Signed-off-by: Yousong Zhou <yszhou4t...@gmail.com> --- 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) _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel