From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KuYLN-00078L-Ix for qemu-devel@nongnu.org; Mon, 27 Oct 2008 16:05:41 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KuYLI-00076Z-Np for qemu-devel@nongnu.org; Mon, 27 Oct 2008 16:05:41 -0400 Received: from [199.232.76.173] (port=46364 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KuYLI-00076R-BS for qemu-devel@nongnu.org; Mon, 27 Oct 2008 16:05:36 -0400 Received: from ik-out-1112.google.com ([66.249.90.177]:55330) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KuYLA-0008Ou-QA for qemu-devel@nongnu.org; Mon, 27 Oct 2008 16:05:36 -0400 Received: by ik-out-1112.google.com with SMTP id b32so527954ika.2 for ; Mon, 27 Oct 2008 13:05:20 -0700 (PDT) Date: Mon, 27 Oct 2008 22:06:55 +0200 From: "Kirill A. Shutemov" Subject: Re: [Qemu-devel] [PATCH] mmap: add check if requested memory area fits target address space Message-ID: <20081027200654.GC10763@localhost.localdomain> References: <1223892640-15545-13-git-send-email-kirill@shutemov.name> <1224225264-8483-1-git-send-email-kirill@shutemov.name> <20081027154835.GA10763@localhost.localdomain> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Md/poaVZ8hnGTzuv" Content-Disposition: inline In-Reply-To: Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: andrzej zaborowski Cc: qemu-devel@nongnu.org --Md/poaVZ8hnGTzuv Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Oct 27, 2008 at 08:37:39PM +0100, andrzej zaborowski wrote: > 2008/10/27 Kirill A. Shutemov : > > On Mon, Oct 27, 2008 at 02:08:52PM +0100, andrzej zaborowski wrote: > >> On 17/10/2008, Kirill A. Shutemov wrote: > >> > Signed-off-by: Kirill A. Shutemov > >> > --- > >> > linux-user/mmap.c | 5 +++++ > >> > 1 files changed, 5 insertions(+), 0 deletions(-) > >> > > >> > diff --git a/linux-user/mmap.c b/linux-user/mmap.c > >> > index bc20f4b..9a2f355 100644 > >> > --- a/linux-user/mmap.c > >> > +++ b/linux-user/mmap.c > >> > @@ -388,6 +388,11 @@ abi_long target_mmap(abi_ulong start, abi_ulon= g len, int prot, > >> > end =3D start + len; > >> > real_end =3D HOST_PAGE_ALIGN(end); > >> > > >> > + if ((unsigned long)start + len > (abi_ulong) -1) { > >> > + errno =3D EINVAL; > >> > + goto fail; > >> > + } > >> > >> I'm being picky but this would prevent the last byte from being used? > >> :p (or the last page because len is aligned?) > > > > No, it returns error if start + len is more than 0xFFFFFFFF (32-bit > > target). > > > >> > >> I'm not sure unsigned long is the best choice. > > > > Why? >=20 > I may be misunderstanding but I think the range of valid addresses > should depend on target word size, not host (even if the combination > where it matters is not yet supported). start + len can be more than 0xFFFFFFFF ((abi_ulong) -1) on 32-bit targets, so we should use host's long. > On a 32-bit host the condition is always false. It's ok. It can be true, only on 64-bit host. --=20 Regards, Kirill A. Shutemov + Belarus, Minsk + ALT Linux Team, http://www.altlinux.com/ --Md/poaVZ8hnGTzuv Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkkGH14ACgkQbWYnhzC5v6pZdwCdF8YXaLO4ECerUl/0nRYyEPWd V80An1raw4pTGQiuE4zQXELf6ocKWgOJ =Fngu -----END PGP SIGNATURE----- --Md/poaVZ8hnGTzuv--