From nobody Sun Feb 8 11:40:49 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1491403468013514.4132764405502; Wed, 5 Apr 2017 07:44:28 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A89E064D81; Wed, 5 Apr 2017 14:44:26 +0000 (UTC) Received: from colo-mx.corp.redhat.com (unknown [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5BE4077FE1; Wed, 5 Apr 2017 14:44:26 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id CFEC64EBDA; Wed, 5 Apr 2017 14:44:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v35EbFSd007243 for ; Wed, 5 Apr 2017 10:37:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id A400FA4069; Wed, 5 Apr 2017 14:37:15 +0000 (UTC) Received: from caroline.brq.redhat.com (dhcp129-198.brq.redhat.com [10.34.129.198]) by smtp.corp.redhat.com (Postfix) with ESMTP id 93525784C8; Wed, 5 Apr 2017 14:37:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A89E064D81 Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com A89E064D81 From: Martin Kletzander To: libvir-list@redhat.com Date: Wed, 5 Apr 2017 16:36:26 +0200 Message-Id: <1b729be6955e5a6d913fd0a1ff2c66cfdf3ff84c.1491402571.git.mkletzan@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: =?UTF-8?q?Erik=20=C5=A0kult=C3=A9ty?= Subject: [libvirt] [PATCH v2 03/12] util: Add virStringTrimOptionalNewline X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Wed, 05 Apr 2017 14:44:27 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" And use it in virFileRead* Signed-off-by: Martin Kletzander --- src/util/virfile.c | 18 +++++++----------- src/util/virhostcpu.c | 4 ++-- src/util/virstring.h | 8 ++++++++ src/util/virsysfs.c | 2 ++ 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/util/virfile.c b/src/util/virfile.c index c0f448d3437d..cbfa3849d793 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -3811,7 +3811,6 @@ int virFileReadValueInt(const char *path, int *value) { char *str =3D NULL; - char *endp =3D NULL; if (!virFileExists(path)) return -2; @@ -3819,8 +3818,9 @@ virFileReadValueInt(const char *path, int *value) if (virFileReadAll(path, INT_STRLEN_BOUND(*value), &str) < 0) return -1; - if (virStrToLong_i(str, &endp, 10, value) < 0 || - (endp && !c_isspace(*endp))) { + virStringTrimOptionalNewline(str); + + if (virStrToLong_i(str, NULL, 10, value) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Invalid integer value '%s' in file '%s'"), str, path); @@ -3847,7 +3847,6 @@ int virFileReadValueUint(const char *path, unsigned int *value) { char *str =3D NULL; - char *endp =3D NULL; if (!virFileExists(path)) return -2; @@ -3855,8 +3854,9 @@ virFileReadValueUint(const char *path, unsigned int *= value) if (virFileReadAll(path, INT_STRLEN_BOUND(*value), &str) < 0) return -1; - if (virStrToLong_uip(str, &endp, 10, value) < 0 || - (endp && !c_isspace(*endp))) { + virStringTrimOptionalNewline(str); + + if (virStrToLong_uip(str, NULL, 10, value)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Invalid unsigned integer value '%s' in file '%s'= "), str, path); @@ -3886,7 +3886,6 @@ virFileReadValueBitmap(const char *path, { char *buf =3D NULL; int ret =3D -1; - char *tmp =3D NULL; if (!virFileExists(path)) return -2; @@ -3894,10 +3893,7 @@ virFileReadValueBitmap(const char *path, if (virFileReadAll(path, maxlen, &buf) < 0) goto cleanup; - /* trim optinoal newline at the end */ - tmp =3D buf + strlen(buf) - 1; - if (*tmp =3D=3D '\n') - *tmp =3D '\0'; + virStringTrimOptionalNewline(buf); *value =3D virBitmapParseUnlimited(buf); if (!*value) diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c index 02b9fc8eb94f..a660e3f4dbe5 100644 --- a/src/util/virhostcpu.c +++ b/src/util/virhostcpu.c @@ -847,13 +847,13 @@ virHostCPUParseCountLinux(void) tmp =3D str; do { if (virStrToLong_i(tmp, &tmp, 10, &ret) < 0 || - !strchr(",-\n", *tmp)) { + !strchr(",-", *tmp)) { virReportError(VIR_ERR_NO_SUPPORT, _("failed to parse %s"), str); ret =3D -1; goto cleanup; } - } while (*tmp++ !=3D '\n'); + } while (*tmp++ && *tmp); ret++; cleanup: diff --git a/src/util/virstring.h b/src/util/virstring.h index a5550e30d2e2..603650aa1588 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -288,4 +288,12 @@ bool virStringBufferIsPrintable(const uint8_t *buf, si= ze_t buflen); char *virStringEncodeBase64(const uint8_t *buf, size_t buflen); +static inline void +virStringTrimOptionalNewline(char *str) +{ + char *tmp =3D str + strlen(str) - 1; + if (*tmp =3D=3D '\n') + *tmp =3D '\0'; +} + #endif /* __VIR_STRING_H__ */ diff --git a/src/util/virsysfs.c b/src/util/virsysfs.c index 7a98b488e0ff..6df45a0e36d9 100644 --- a/src/util/virsysfs.c +++ b/src/util/virsysfs.c @@ -89,6 +89,8 @@ virSysfsGetValueString(const char *file, if (virFileReadAll(path, VIR_SYSFS_VALUE_MAXLEN, value) < 0) goto cleanup; + virStringTrimOptionalNewline(*value); + ret =3D 0; cleanup: VIR_FREE(path); --=20 2.12.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list