From d12c0f4cfe339a30230e4c3d04eb93bcd0bd2c0f Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sat, 3 Sep 2022 05:52:45 +0900 Subject: [PATCH] loop-util: fix memleak when fd is for a block device with non-zero offset or size --- src/shared/loop-util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/loop-util.c b/src/shared/loop-util.c index 568e431655..928792281c 100644 --- a/src/shared/loop-util.c +++ b/src/shared/loop-util.c @@ -506,6 +506,7 @@ static int loop_device_make_internal( if (nr < 0) return -errno; + node = mfree(node); if (asprintf(&node, "/dev/loop%i", nr) < 0) return -ENOMEM; @@ -537,7 +538,6 @@ static int loop_device_make_internal( /* Now close the loop device explicitly. This will release any lock acquired by * attach_empty_file() or similar, while we sleep below. */ loop = safe_close(loop); - node = mfree(node); /* Wait some random time, to make collision less likely. Let's pick a random time in the * range 0ms…250ms, linearly scaled by the number of failed attempts. */ -- 2.25.1