Message ID | 20220217034947.180935-1-reijiw@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] KVM: selftests: kvm_vm_elf_load() and elfhdr_get() should close fd | expand |
On Wed, Feb 16, 2022 at 7:50 PM Reiji Watanabe <reijiw@google.com> 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@google.com> Reviewed-by: Oliver Upton <oupton@google.com> > --- > 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 >
Hi Paolo, Can you pick this old patch up? Thanks, drew On Wed, Feb 16, 2022 at 07:49:46PM -0800, Reiji Watanabe 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@google.com> > --- > 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 > Reviewed-by: Andrew Jones <drjones@redhat.com>
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); }
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@google.com> --- tools/testing/selftests/kvm/lib/elf.c | 2 ++ 1 file changed, 2 insertions(+)