From owner-svn-src-head@freebsd.org Thu May 28 05:49:38 2020 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E6E332FEFCA for ; Thu, 28 May 2020 05:49:38 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic311-25.consmr.mail.gq1.yahoo.com (sonic311-25.consmr.mail.gq1.yahoo.com [98.137.65.206]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 49XcGT2pNfz3fdD for ; Thu, 28 May 2020 05:49:37 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: LS9YWdEVM1k73qPmvshuFBKd9s6KBklF.dY4F1asivcpJ6fFjtZt55.zmi9lSWN G7ebeu2mUrHsWoHts9BDJvXC34E.lzW5MKNsnw0KpafQPwORKa_Z2ru0gqfuu4CEbX3h4kNnwzya x_uSu7pPo_WEAbpaKBioRfFXo16OpyTbkWk2Be6FfwbPTk502.Kvf6sLdWuVGikV8ALL2ryNq8G3 TJc5Wvu4n7GFkxuCx.GStbiqzEbsfiqaoqCeADZwqSoDdmP85to.S2y.0C8pKiS6dF2Vt9snGc.F kWUQeedEzmxPie3vSbjWgn_s26HOSM4Xn69sTvvf9Vx6WnrdJDHBzOIWQJ.mW0rC1y6XRs3uq6yi UduzfVHDpgP3ZDUcJbiQEOfjojdwAdtH2VN8U0Ehdc5DhbsbPrS0qQDqtzPQyAKhwUPxeqmIzfrP 2Vy65X6qO.pE9y.W.dPnu5jRrogY3j_dgK1Fw_s0IIM0ElsawMMMHYQbk0znvS3g5UOYg0ZdrAHA 5KDw1wnGQMWX8lBcKt1_XkjnWjYjxnLLBFTYbpbc2elNUB1cB2clEySHcgIwvmcryCF3AHCLQkF4 UapBnbvWYrkfJozaegiLTFJcaQQJlF85tzju1TCgG2TIvhMkoQrr3AbKOhegp6F7NkMTDsyurUul MTK2k9Fe3TE.r9io0yQ6xtAwnDPWyjn4RZ1G1MZ3eReit1DNf2345ShzPvRvfkTBblW2gDBqe02j FzyHLgmmEPLk7ThgGkzkV.6HvYmPiuY_.aqCi_EV_boyIWwe6au4f5a8ki399Y2EqT5ytz2iixYA eDcao1m9eNzn5H3Z8gm.7c4.zzJ6zA90MvJq0SU1NYoaDfce3_ynJ6TpYrUDpCZwF74Kv4i1prDc c8vOyP6G8ZZNuQZhMrkkeuajPpyK.8Ypr7v8AYkCiF0LoEtGKGr_j1i6oPPtAsaiAHrekRGA9aA. rQ6R050697AkuSXvQ73jjnhbt0mQx2WyMlX_nKUCQV.EIYju8W20zP3jwbaeklpAWqIJUiahDGpy qc3.ybi.WdSlNkjbQf_KBhfE_g_t2Mtmowp2efLvnxy7yJh6dyc4HbvIZmJFhjZ5aIabktrJPXVS XGR9N39CexSdinZ6J1gsyGUJ4CyCcE9JSTT1ej829ryKDHINF6Qzo9XZxuNvabu0p.uXE8owvvVB XdUs2o4xdZyNMvGHN9R0_6ei0dSaVBetFZFbfunM_72IwqCdtLS_dIZlKzLP2GD7yqUR9cmsEdMl Up_aT1XKJk77n7ptO5N9zf90hD4olkLDRNMlLbvLQ2BQSxyrWJT77R4hNakUMIh5E0guNliyNhtV ZTQfdOwPMSHMjh2LiMOqfjCQreDVrdpk83Z1Wv2vp2rBWltjmMB84CDoKndnaiiKbxyQCqcoq14J 9jd.Bs0TUQFAQbZv86gQUAXRpccQG1tLoy9k4jwUlzdhr.ykIuAcwULyZZa4- Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.gq1.yahoo.com with HTTP; Thu, 28 May 2020 05:49:35 +0000 Received: by smtp413.mail.gq1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 13a1ec4c7838b295fc31315fed3d254b; Thu, 28 May 2020 05:49:30 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Re: svn commit: r361568 - head/sys/powerpc/aim Message-Id: <3ACF2BCA-284B-4957-AF39-FF6576B2BE3E@yahoo.com> Date: Wed, 27 May 2020 22:49:29 -0700 To: Justin Hibbits , svn-src-head@freebsd.org X-Mailer: Apple Mail (2.3608.80.23.2.2) References: <3ACF2BCA-284B-4957-AF39-FF6576B2BE3E.ref@yahoo.com> X-Rspamd-Queue-Id: 49XcGT2pNfz3fdD X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.17 / 15.00]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[yahoo.com]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; DKIM_TRACE(0.00)[yahoo.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; NEURAL_HAM_SHORT(-0.71)[-0.707]; FREEMAIL_TO(0.00)[gmail.com,freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/21, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.98)[-0.982]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-0.99)[-0.985]; MIME_GOOD(-0.10)[text/plain]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.65.206:from]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.65.206:from]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 May 2020 05:49:39 -0000 Justin Hibbits chmeeedalf at gmail.com wrote on Thu May 28 02:41:06 UTC 2020 : > On Thu, 28 May 2020 00:49:03 +0000 (UTC) > Brandon Bergren wrote: >=20 > > Author: bdragon > > Date: Thu May 28 00:49:02 2020 > > New Revision: 361568 > > URL: https://svnweb.freebsd.org/changeset/base/361568 > >=20 > > Log: > > [PowerPC] Fix radix crash when passing -1 from userspace > > =20 > > Found by running libc tests with radix enabled. > > =20 > > Detect unsigned integer wrapping with a postcondition. > > =20 > > Note: Radix MMU is not enabled by default yet. > > =20 > > Sponsored by: Tag1 Consulting, Inc. > >=20 > > Modified: > > head/sys/powerpc/aim/mmu_radix.c > >=20 > > Modified: head/sys/powerpc/aim/mmu_radix.c > > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > > --- head/sys/powerpc/aim/mmu_radix.c Wed May 27 23:20:35 > > 2020 (r361567) +++ head/sys/powerpc/aim/mmu_radix.c Thu > > May 28 00:49:02 2020 (r361568) @@ -6000,7 +6000,8 @@ > > mmu_radix_kremove(vm_offset_t va) int mmu_radix_map_user_ptr(pmap_t > > pm, volatile const void *uaddr, void **kaddr, size_t ulen, size_t > > *klen) { > > - if ((uintptr_t)uaddr + ulen >=3D VM_MAXUSER_ADDRESS) > > + if ((uintptr_t)uaddr + ulen >=3D VM_MAXUSER_ADDRESS || > > + (uintptr_t)uaddr + ulen < (uintptr_t)uaddr) > > return (EFAULT); > > =20 > > *kaddr =3D (void *)(uintptr_t)uaddr; >=20 > Wouldn't >=20 > if ((uintptr_t)uaddr >=3D VM_MAXUSER_ADDRESS || > (uintptr_t)uaddr + ulen >=3D VM_MAXUSER_ADDRESS) >=20 > be more appropriate? Using: #define VM_MAXUSER_ADDRESS32 0xfffff000 as an example for 32-bit AIM powerpc. Let (uintptr_t)uaddr=3D=3D0xffffe000u Let ulen=3D=3D 0x3000u Then (uintptr_t)uaddr+ulen =3D=3D 0x1000u (wrapped/truncated: "Detect unsigned integer wrapping") So (right hand sides forced unsigned by left hand sides being so): (uintptr_t)uaddr=3D VM_MAXUSER_ADDRESS || (uintptr_t)uaddr >=3D (uintptr_t)VM_MAXUSER_ADDRESS - ulen (I've left equality handling as it was, despite, for example, 0xffffe000u with length 0x2000u having a last address of 0xffffefffu and 0xffffefffu < 0xfffff000u . There may be reasons to disallow that for all I know.) =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)