[Patch v4 2/5] hw/core/loader: Use qemu_open() instead of open() in get_image_size()

Vishal Chourasia posted 5 patches 3 weeks, 6 days ago
Maintainers: Richard Henderson <richard.henderson@linaro.org>, Peter Maydell <peter.maydell@linaro.org>, Antony Pavlov <antonynpavlov@gmail.com>, Rob Herring <robh@kernel.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Alistair Francis <alistair@alistair23.me>, "Alex Bennée" <alex.bennee@linaro.org>, Helge Deller <deller@gmx.de>, Paolo Bonzini <pbonzini@redhat.com>, Eduardo Habkost <eduardo@habkost.net>, "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Corey Minyard <minyard@acm.org>, Song Gao <gaosong@loongson.cn>, Bibo Mao <maobibo@loongson.cn>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Thomas Huth <huth@tuxfamily.org>, Laurent Vivier <laurent@vivier.eu>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Paul Burton <paulburton@kernel.org>, Aleksandar Rikalo <arikalo@gmail.com>, Huacai Chen <chenhuacai@kernel.org>, "Hervé Poussineau" <hpoussin@reactos.org>, Aurelien Jarno <aurelien@aurel32.net>, Stafford Horne <shorne@gmail.com>, BALATON Zoltan <balaton@eik.bme.hu>, Bernhard Beschow <shentey@gmail.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Nicholas Piggin <npiggin@gmail.com>, Aditya Gupta <adityag@linux.ibm.com>, Glenn Miles <milesg@linux.ibm.com>, Harsh Prateek Bora <harshpb@linux.ibm.com>, Palmer Dabbelt <palmer@dabbelt.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <dbarboza@ventanamicro.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Yoshinori Sato <yoshinori.sato@nifty.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Jared Rossi <jrossi@linux.ibm.com>, Zhuoying Cai <zycai@linux.ibm.com>, Halil Pasic <pasic@linux.ibm.com>, Eric Farman <farman@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>, David Hildenbrand <david@redhat.com>, Ilya Leoshkevich <iii@linux.ibm.com>, Magnus Damm <magnus.damm@gmail.com>, Igor Mammedov <imammedo@redhat.com>, Ani Sinha <anisinha@redhat.com>, "Clément Chigot" <chigot@adacore.com>, Frederic Konrad <konrad.frederic@yahoo.fr>, Artyom Tarasenko <atar4qemu@gmail.com>, Max Filippov <jcmvbkbc@gmail.com>, David Gibson <david@gibson.dropbear.id.au>
There is a newer version of this series
[Patch v4 2/5] hw/core/loader: Use qemu_open() instead of open() in get_image_size()
Posted by Vishal Chourasia 3 weeks, 6 days ago
Replace open() with qemu_open() which provides better error handling
via the Error object, automatically sets O_CLOEXEC, and supports FD
passing with /dev/fdset.

Remove redundant error_setg_file_open() call since qemu_open() now
handles error reporting internally.

Suggested-by: Daniel P. Berrang\ufffd\ufffd <berrange@redhat.com>
Signed-off-by: Vishal Chourasia <vishalc@linux.ibm.com>
---
 hw/core/loader.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/core/loader.c b/hw/core/loader.c
index e40cba1b9f..030f832e54 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -77,9 +77,8 @@ int64_t get_image_size(const char *filename, Error **errp)
 {
     int fd;
     int64_t size;
-    fd = open(filename, O_RDONLY | O_BINARY);
+    fd = qemu_open(filename, O_RDONLY | O_BINARY, errp);
     if (fd < 0) {
-        error_setg_file_open(errp, errno, filename);
         return -1;
     }
     size = lseek(fd, 0, SEEK_END);
-- 
2.51.0
Re: [Patch v4 2/5] hw/core/loader: Use qemu_open() instead of open() in get_image_size()
Posted by BALATON Zoltan 3 weeks, 6 days ago
On Fri, 17 Oct 2025, Vishal Chourasia wrote:
> Replace open() with qemu_open() which provides better error handling
> via the Error object, automatically sets O_CLOEXEC, and supports FD
> passing with /dev/fdset.
>
> Remove redundant error_setg_file_open() call since qemu_open() now
> handles error reporting internally.
>
> Suggested-by: Daniel P. Berrang?? <berrange@redhat.com>
> Signed-off-by: Vishal Chourasia <vishalc@linux.ibm.com>
> ---
> hw/core/loader.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/hw/core/loader.c b/hw/core/loader.c
> index e40cba1b9f..030f832e54 100644
> --- a/hw/core/loader.c
> +++ b/hw/core/loader.c
> @@ -77,9 +77,8 @@ int64_t get_image_size(const char *filename, Error **errp)
> {
>     int fd;
>     int64_t size;
> -    fd = open(filename, O_RDONLY | O_BINARY);
> +    fd = qemu_open(filename, O_RDONLY | O_BINARY, errp);
>     if (fd < 0) {
> -        error_setg_file_open(errp, errno, filename);

This was just added by previous patch so it's useless to add to remove 
right away. Maybe this patch should come first before adding more error 
messages to this function?

Regards,
BALATON Zoltan

>         return -1;
>     }
>     size = lseek(fd, 0, SEEK_END);
>