Fix leaks in mount_one()

This change avoids leaks in mount_one() when the calls to mount(2) fail.

Bug: None
Test: Builds
Change-Id: I5dc5cd100fb9ccad87706b52a6f2b745713c736c
diff --git a/libminijail.c b/libminijail.c
index b6e2b1b..9cf3232 100644
--- a/libminijail.c
+++ b/libminijail.c
@@ -1372,7 +1372,7 @@
 				      (m->flags & MS_BIND));
 	if (ret) {
 		pwarn("creating mount target '%s' failed", dest);
-		return ret;
+		goto error;
 	}
 
 	/*
@@ -1388,7 +1388,7 @@
 	ret = mount(m->src, dest, m->type, m->flags, m->data);
 	if (ret) {
 		pwarn("mount: %s -> %s", m->src, dest);
-		return ret;
+		goto error;
 	}
 
 	if (remount_ro) {
@@ -1397,13 +1397,17 @@
 			    m->flags | MS_REMOUNT, m->data);
 		if (ret) {
 			pwarn("bind ro: %s -> %s", m->src, dest);
-			return ret;
+			goto error;
 		}
 	}
 
 	free(dest);
 	if (m->next)
 		return mount_one(j, m->next, dev_path);
+	return 0;
+
+error:
+	free(dest);
 	return ret;
 }