From: Michal Privoznik Date: Thu, 18 Jul 2024 13:13:30 +0000 (+0200) Subject: virsysinfo: Trim newline when decoding OEM strings X-Git-Tag: v10.6.0-rc1~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=185065b645c46d4be5981c0874a612b33ceb295a;p=thirdparty%2Flibvirt.git virsysinfo: Trim newline when decoding OEM strings dmidecode always puts a newline character at the end of each OEM string it prints. It's the dmi_oem_strings() function [1] that iterates over strings and calls pr_attr() over each one which puts "\n" at the end, unconditionally [2[. Since it's not part of the string though, trim it. 1: https://git.savannah.nongnu.org/cgit/dmidecode.git/tree/dmidecode.c#n2431 2: https://git.savannah.nongnu.org/cgit/dmidecode.git/tree/dmioutput.c#n63 Signed-off-by: Michal Privoznik Reviewed-by: Jiri Denemark --- diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c index 0d9083c891..cdc2a7d87b 100644 --- a/src/util/virsysinfo.c +++ b/src/util/virsysinfo.c @@ -915,6 +915,8 @@ virSysinfoDMIDecodeOEMString(size_t i, if (err && *err != '\0') return -1; + virStringTrimOptionalNewline(*str); + return 0; } diff --git a/tests/sysinfotest.c b/tests/sysinfotest.c index 287c40c6f9..09cfe6fa45 100644 --- a/tests/sysinfotest.c +++ b/tests/sysinfotest.c @@ -66,7 +66,7 @@ testDMIDecodeDryRun(const char *const*args G_GNUC_UNUSED, if (STREQ(args[3], "3")) { *output = g_strdup("Ha ha ha try parsing\\n\n" " String 3: this correctly\n" - " String 4:then"); + " String 4:then\n"); } else { *error = g_strdup_printf("No OEM string number %s", args[3]); *status = EXIT_FAILURE;