KVM: selftests: kvm_vm_elf_load() and elfhdr_get() should close fd
authorReiji Watanabe <reijiw@google.com>
Tue, 20 Dec 2022 17:09:21 +0000 (09:09 -0800)
committerSean Christopherson <seanjc@google.com>
Tue, 24 Jan 2023 18:06:30 +0000 (10:06 -0800)
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(), 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@google.com>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Reviewed-by: Andrew Jones <andrew.jones@linux.dev>
Reviewed-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20221220170921.2499209-2-reijiw@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/lib/elf.c

index 820ac2d..266f387 100644 (file)
@@ -90,6 +90,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);
 }