From nobody Thu Jan 12 18:20:11 2023 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4NtCWw1Y83z2pK7R; Thu, 12 Jan 2023 18:20:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NtCWw0zD0z4Crp; Thu, 12 Jan 2023 18:20:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1673547612; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JxVdSBuDE/JR6sMQ+JOYJb6xsMroD3Lb9uN4d9bgWRE=; b=IOocUDdEJFd8ssyEpClsb/GA0s/LUKgZTRHnlaeDljBULSAvXdeMyB6upC3kxjz7FhlRmh OBZtaWaD56aJX9NB/WGTiXsHksczTvN8Gih5nEkHRDON76aEXYvnzGMDDv34mUwrFiHdKZ 9vjTY11ToEIHBiyYuJE2glKxnsUzY8ikvvJpL3oJuPP/gqN4z57dZ808z8VvY0w16ZBKxp IqTJBE2c4KgrU6RjIixEsfWpOtl8PEOj48ZXj+PhfPZhigxiFQxQrEJrL0o3eTNO2bDO4m hS3Lkmkgbi9bShcuswfSWY6g4GD9rHuCg2QdrbDycu95rpUACEJo9G989K/pnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1673547612; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JxVdSBuDE/JR6sMQ+JOYJb6xsMroD3Lb9uN4d9bgWRE=; b=q2dU/nu4G/IYkSimmvn8YL7uIa/0pvbcQP8I1SzWNdeBHBel03n/14v7N3T6py81qv8xmv tWT1JJCX04kSzYv2v8jyD6FhzHHjbfBfGN1JD8CIsCPjoQBvrddJQUL31lFCntGXsyYoNm Q+s6s4nhedhYvUNbh6ybiQQTSYtrN4dCYOzC7Tl0MAMswBB+YM+GBa5/50MT6073BOK8sC bB5CydggyUa1q5MOghsJhrm5O3qiVqY5xfmohNyibgCuJCJozQw+CObFK//1AqPfuNIe9o jbqybQI4VJ8aouLy0JpOToVKKxGfUVUvCuLEoOHAm6ERpRMu+d19PiUT2Y/yxg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1673547612; a=rsa-sha256; cv=none; b=ku9o2LsJw0VXkTCwfdk+Kn9gFQJU08vHvGXqLNRcl07FK3UWMg56K6VQ20PNgGkAHKNPT6 /sM9zbcyQZl7OMRnZIVAC2sy+IRW9YjQDQwVdDoN4pTO4TtPfCy2qZ6WGgpRWhyZy1+yxx x7IpJrvhgFeIEgux48r230MQaNmaRgJd9QpI7ZXQjVUg9DWzroUhqAwigQoNVXqrBYTUJp THtBbjJELBZRqPOS2Y+BKjp5WXrG7kf+ls/SLGvJswSMlWg8wu5DotVD+DZk9MUQtzW7Qt rmL1dXwU0//R/kOknsrJyxYq0sTMBqIRWxz79bR8rBVf9keBL6XOFpjayFCZgg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NtCWv732QzdPW; Thu, 12 Jan 2023 18:20:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30CIKB46012706; Thu, 12 Jan 2023 18:20:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30CIKBio012697; Thu, 12 Jan 2023 18:20:11 GMT (envelope-from git) Date: Thu, 12 Jan 2023 18:20:11 GMT Message-Id: <202301121820.30CIKBio012697@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Brooks Davis Subject: git: a872c3705417 - main - xdr: store chars consistently List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: brooks X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a872c37054172f3f7a03aef263ca5886a749771f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=a872c37054172f3f7a03aef263ca5886a749771f commit a872c37054172f3f7a03aef263ca5886a749771f Author: Brooks Davis AuthorDate: 2023-01-12 18:16:17 +0000 Commit: Brooks Davis CommitDate: 2023-01-12 18:16:17 +0000 xdr: store chars consistently Cast char's through unsigned char before storing as an integer in xdr_char(), this ensures that the encoded form is consistently not sign-extended following Open Solaris's example. Prior to this change, platforms with signed chars would sign extend values with the high bit set but ones with unsigned chars would not so 0xff would be stored as 0x000000ff on unsigned char platforms and 0xffffffff on signed char platforms. Decoding has the same result for either form so this is a largely cosmetic change, but it seems best to produce consistent output. For more discussion, see https://github.com/openzfs/zfs/issues/14173 Reviewed by: mav, imp Differential Revision: https://reviews.freebsd.org/D37992 --- lib/libc/xdr/xdr.c | 8 ++++---- sys/xdr/xdr.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/libc/xdr/xdr.c b/lib/libc/xdr/xdr.c index fcf4e9029074..48b4cdbecd02 100644 --- a/lib/libc/xdr/xdr.c +++ b/lib/libc/xdr/xdr.c @@ -429,13 +429,13 @@ xdr_uint16_t(XDR *xdrs, uint16_t *u_int16_p) bool_t xdr_char(XDR *xdrs, char *cp) { - int i; + u_int i; - i = (*cp); - if (!xdr_int(xdrs, &i)) { + i = *((unsigned char *)cp); + if (!xdr_u_int(xdrs, &i)) { return (FALSE); } - *cp = i; + *((unsigned char *)cp) = i; return (TRUE); } diff --git a/sys/xdr/xdr.c b/sys/xdr/xdr.c index 0a0bf3f66744..b57eb7d66ef4 100644 --- a/sys/xdr/xdr.c +++ b/sys/xdr/xdr.c @@ -358,13 +358,13 @@ xdr_uint16_t(XDR *xdrs, uint16_t *uint16_p) bool_t xdr_char(XDR *xdrs, char *cp) { - int i; + u_int i; - i = (*cp); - if (!xdr_int(xdrs, &i)) { + i = *((unsigned char *)cp); + if (!xdr_u_int(xdrs, &i)) { return (FALSE); } - *cp = i; + *((unsigned char *)cp) = i; return (TRUE); }