On Wed, Feb 16, 2022 at 7:50 PM Reiji Watanabe <reijiw@xxxxxxxxxx> wrote: > > kvm_vm_elf_load() and elfhdr_get() open one file each, but they > never close the opened file descriptor. If a test repeatedly > creates and destroys a VM with vm_create_with_vcpus(), which > (directly or indirectly) calls those two functions, the test > might end up getting a open failure with EMFILE. > Fix those two functions to close the file descriptor. > > Signed-off-by: Reiji Watanabe <reijiw@xxxxxxxxxx> Reviewed-by: Oliver Upton <oupton@xxxxxxxxxx> > --- > tools/testing/selftests/kvm/lib/elf.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/tools/testing/selftests/kvm/lib/elf.c b/tools/testing/selftests/kvm/lib/elf.c > index 13e8e3dcf984..9b23537a3caa 100644 > --- a/tools/testing/selftests/kvm/lib/elf.c > +++ b/tools/testing/selftests/kvm/lib/elf.c > @@ -91,6 +91,7 @@ static void elfhdr_get(const char *filename, Elf64_Ehdr *hdrp) > " hdrp->e_shentsize: %x\n" > " expected: %zx", > hdrp->e_shentsize, sizeof(Elf64_Shdr)); > + close(fd); > } > > /* VM ELF Load > @@ -190,4 +191,5 @@ void kvm_vm_elf_load(struct kvm_vm *vm, const char *filename) > phdr.p_filesz); > } > } > + close(fd); > } > -- > 2.35.1.473.g83b2b277ed-goog >