loop-util: fix memleak when fd is for a block device with non-zero offset or size

This commit is contained in:
Yu Watanabe
2022-09-03 09:47:53 +09:00
parent 8ba24727c5
commit d12c0f4cfe
+1 -1
View File
@@ -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. */