Re: [PATCH 4/5] virsysinfo: Be more forgiving when decoding OEM strings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 18, 2024 at 16:08:06 +0200, Michal Privoznik wrote:
...
> diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c
> index cdc2a7d87b..1fd8261dc1 100644
> --- a/src/util/virsysinfo.c
> +++ b/src/util/virsysinfo.c
> @@ -910,9 +910,20 @@ virSysinfoDMIDecodeOEMString(size_t i,
>  
>      /* Unfortunately, dmidecode returns 0 even if OEM String index is out
>       * of bounds, but it prints an error message in that case. Check stderr
> -     * and return success/failure accordingly. */
> +     * and return success/failure accordingly.
> +     * To make matters worse, if there are two or more 'OEM String'
> +     * sections then:
> +     *
> +     * a) we have no way of distinguishing them as dmidecode prints
> +     *    strings from all sections,
> +     * b) if one section contains a valid string, but the other doesn't,
> +     *    then stdout contains the valid string and stderr contains the
> +     *    error "No OEM string number X*.
> +     *
> +     * Let's just hope there is not many systems like that.
> +     */
>  
> -    if (err && *err != '\0')
> +    if (!(*str && **str != '\0') && err && *err != '\0')

I think

    if ((!*str || **str == '\0') && err && *err != '\0')

might be a bit easier for humans to parse. At least for me it is easier
:-)

Jirka



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux