[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/3] Remove artificial length limits when parsin
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 0/3] Remove artificial length limits when parsing options |
Date: |
Mon, 16 Apr 2018 13:50:01 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 |
On 16/04/2018 13:17, Daniel P. Berrangé wrote:
> A user trying out SMBIOS "OEM strings" feature reported that the data
> they are exposing to the guest was truncated at 1023 bytes, which breaks
> the app consuming in the guest. After searching for the cause I
> eventually found that the QemuOpts parsing is using fixed length 1024
> byte array for option values and 128 byte array for key names.
>
> We can certainly debate whether it is sane to have such long command
> line argument values (it is not sane), but if the OS was capable of
> exec'ing QEMU with such an ARGV array, there is little good reason for
> imposing an artificial length restriction when parsing it. Even worse is
> that we silently truncate without reporting an error when hitting limits
> resulting in a semantically incorrect behaviour, possibly even leading
> to security flaws depending on the data that was truncated.
>
> Thus this patch series removes the artificial length limits by killing
> the fixed length buffers.
>
> Separately I intend to make it possible to read "OEM strings" data from
> a file, to avoid need to have long command line args.
>
> Daniel P. Berrangé (3):
> accel: use g_strsplit for parsing accelerator names
> opts: don't silently truncate long parameter keys
> opts: don't silently truncate long option values
>
> accel/accel.c | 16 +++---
> hw/i386/multiboot.c | 33 +++++++----
> include/qemu/option.h | 3 +-
> tests/test-qemu-opts.c | 18 ------
> util/qemu-option.c | 150
> ++++++++++++++++++++++++++-----------------------
> 5 files changed, 108 insertions(+), 112 deletions(-)
>
Queued, thanks.
Paolo