From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1I2voS-0003XJ-A5 for qemu-devel@nongnu.org; Mon, 25 Jun 2007 17:09:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1I2voR-0003X4-6S for qemu-devel@nongnu.org; Mon, 25 Jun 2007 17:09:31 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I2voR-0003X1-0F for qemu-devel@nongnu.org; Mon, 25 Jun 2007 17:09:31 -0400 Received: from partizan.velesys.com ([213.184.230.195]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1I2voQ-0000qg-DV for qemu-devel@nongnu.org; Mon, 25 Jun 2007 17:09:30 -0400 Received: from localhost (partizan [10.0.5.24]) by partizan.velesys.com (paritzan.velesys.com) with ESMTP id AF59DD68CEF for ; Tue, 26 Jun 2007 00:11:18 +0300 (EEST) Received: from partizan.velesys.com ([10.0.5.24]) by localhost (partizan.velesys.com [10.0.5.24]) (amavisd-new, port 10024) with ESMTP id 1hJwtPUqVGR7 for ; Tue, 26 Jun 2007 00:11:16 +0300 (EEST) Received: from localhost.localdomain (deb30.mgts.by [82.209.245.203]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by partizan.velesys.com (paritzan.velesys.com) with ESMTP id EC275D68CE5 for ; Tue, 26 Jun 2007 00:11:15 +0300 (EEST) Date: Tue, 26 Jun 2007 00:05:11 +0300 From: "Kirill A. Shutemov" Message-ID: <20070625210511.GA11900@localhost.localdomain> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="JWEK1jqKZ6MHAcjA" Content-Disposition: inline Subject: [Qemu-devel] [PATCH] syscall getgroups() optimization Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel --JWEK1jqKZ6MHAcjA Content-Type: multipart/mixed; boundary="R3G7APHDIzY6R/pk" Content-Disposition: inline --R3G7APHDIzY6R/pk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On success, getgroups() returns the number of supplementary group IDs. So,= =20 we can swap real number group IDs. Patch in the attachment. --=20 Regards, Kirill A. Shutemov + Belarus, Minsk + Velesys LLC, http://www.velesys.com/ + ALT Linux Team, http://www.altlinux.com/ --R3G7APHDIzY6R/pk Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="qemu-0.9.0-alt-getgroups.patch" --- qemu/linux-user/syscall.c 2007-05-08 12:42:50 +0300 +++ qemu-0.9.0.cvs20070420/linux-user/syscall.c 2007-05-20 21:13:06 +0300 @@ -3741,7 +4144,7 @@ ret = get_errno(getgroups(gidsetsize, grouplist)); if (!is_error(ret)) { target_grouplist = lock_user(arg2, gidsetsize * 2, 0); - for(i = 0;i < gidsetsize; i++) + for(i = 0;i < ret; i++) target_grouplist[i] = tswap16(grouplist[i]); unlock_user(target_grouplist, arg2, gidsetsize * 2); } @@ -3873,7 +4276,7 @@ ret = get_errno(getgroups(gidsetsize, grouplist)); if (!is_error(ret)) { target_grouplist = lock_user(arg2, gidsetsize * 4, 0); - for(i = 0;i < gidsetsize; i++) + for(i = 0;i < ret; i++) target_grouplist[i] = tswap32(grouplist[i]); unlock_user(target_grouplist, arg2, gidsetsize * 4); } --R3G7APHDIzY6R/pk-- --JWEK1jqKZ6MHAcjA Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQFGgC4ebWYnhzC5v6oRAkowAJ9hm/XhK7GLyE6fbCyAHUHXbnmuVwCgj1TF TWMxrIAqZ+QFGpYEeW79Ugc= =vzP3 -----END PGP SIGNATURE----- --JWEK1jqKZ6MHAcjA--