From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1OXBDB-0007K1-1h for mharc-grub-devel@gnu.org; Fri, 09 Jul 2010 06:53:41 -0400 Received: from [140.186.70.92] (port=52693 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OXBD7-0007Jl-7n for grub-devel@gnu.org; Fri, 09 Jul 2010 06:53:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OXBD5-0007SF-Mc for grub-devel@gnu.org; Fri, 09 Jul 2010 06:53:37 -0400 Received: from mail-wy0-f169.google.com ([74.125.82.169]:65203) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OXBD5-0007SA-FB for grub-devel@gnu.org; Fri, 09 Jul 2010 06:53:35 -0400 Received: by wyj26 with SMTP id 26so1587163wyj.0 for ; Fri, 09 Jul 2010 03:53:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :content-type; bh=mzFB/aLyxyROFurCtS+0+q3iu2CPxRl88+0XqFvHIGE=; b=PDVNNl0yBWcJw+4tWIyg2Y/IEr3mC9G7G99JJh65Kn2XHL2a275wXur66z01JVW6Sb VkPECNAGNTJHmRIqmIDjdFQH18gwovCoNRpGMlPeKvenyxYJ8Q8bPfpBPAsoEFv1bWPR m9lz7biUHw1GwZMpRLSPpWTVdM2k4oOX1cYKU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type; b=GQ6JDKs5ojDd4cBjsoOFDsMPQxIhDSOfTt7T/DAJL+r+bgHgB6jR26/rKW9O9La14Z PMqCsNFY6oxbhqzORI0mJ5HfvMB1xspIo4GeDlwCaoUfNJNIapBqKNE4khiaovF8c4jj sG04jAxtgZ/pFIB+mJ2W8nfKPwerOQVi2XsvE= Received: by 10.227.148.17 with SMTP id n17mr8160786wbv.19.1278672812454; Fri, 09 Jul 2010 03:53:32 -0700 (PDT) Received: from [147.210.129.4] (laptop-147-210-129-4.labri.fr [147.210.129.4]) by mx.google.com with ESMTPS id i25sm5600074wbi.16.2010.07.09.03.53.31 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 09 Jul 2010 03:53:31 -0700 (PDT) Message-ID: <4C36FFAA.5000100@gmail.com> Date: Fri, 09 Jul 2010 12:53:30 +0200 From: =?UTF-8?B?R3LDqWdvaXJlIFN1dHJl?= User-Agent: Mozilla/5.0 (X11; U; NetBSD i386; en-US; rv:1.9.1.9) Gecko/20100603 Shredder/3.0.4 MIME-Version: 1.0 To: The development of GNU GRUB References: <4BFF1337.3020100@gmail.com> <4C040166.3030502@gmail.com> <4C33A65A.7090005@gmail.com> <4C351BB9.9020802@gmail.com> In-Reply-To: <4C351BB9.9020802@gmail.com> Content-Type: multipart/mixed; boundary="------------060300070807000700050005" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) Subject: Re: [Patch] Discard incorrect nested partitions (fixes #29956) X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jul 2010 10:53:39 -0000 This is a multi-part message in MIME format. --------------060300070807000700050005 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 07/08/2010 02:28, Vladimir 'φ-coder/phcoder' Serbinenko wrote: Attached is the new version of the patch. > As I already told you in real dprintf isn't seen by user. One need to > grub_dprintf (....); > #ifdef GRUB_UTIL > grub_util_warn (...); > #endif Ok. For partition.c, this is now done in the checking function to avoid code duplication (and it makes the code easier to read). For bsdlabel.c, I re-ordered the code so that no warning is shown for partitions of type unused (such as the raw partition). >> I simplified the check in grub_disk_adjust_range: no need to check for >> the ``ancestor'' partitions, but we still check for the given partition. >> > You're right. This means we can't screw this test to save space. In this > case it's better to do the complete check for early bug catch. I removed the simplification from the patch. > We shouldn't check for partitions being outside of disk since BIOS disk > size limitations are common. Consider following situation: > (hd0,msdos1,bsd1) /boot > BIOS LIMIT > (hd0,msdos1,bsd2) / > This system is perfectly capable of booting but with your patch it won't. Right. The patch now only checks sub-partitions (no check is done on top-level partitions). > We must always exercice best effort strategy. If something can bee > booted, boot it. Here, we discard improperly nested partitions, even though they could be accessed. So one may argue that this breaks the best effort strategy. However, such improperly nested partitions can in general be accessed by a properly nested identifier, so I guess it's fine. > We should warn if a used final-nestedness partition is partialy outside > the limit. Simple message usually scrolls way too fast and so usually > ignored (if someone sees boot process at all). Perhaps we need a way to > pass such warnings to kernel which then can take appropriate action > (e.g. notify sysadmin) I'm not sure where we should check that. If one attempts to load a kernel or module that is beyond the disk limit, grub_disk_read will fail anyway. Grégoire --------------060300070807000700050005 Content-Type: text/plain; name="strict-partition-nesting_v3.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="strict-partition-nesting_v3.diff" PT09IGFkZGVkIGZpbGUgJ0NoYW5nZUxvZy5zdHJpY3QtcGFydGl0aW9uLW5lc3RpbmcnCi0t LSBDaGFuZ2VMb2cuc3RyaWN0LXBhcnRpdGlvbi1uZXN0aW5nCTE5NzAtMDEtMDEgMDA6MDA6 MDAgKzAwMDAKKysrIENoYW5nZUxvZy5zdHJpY3QtcGFydGl0aW9uLW5lc3RpbmcJMjAxMC0w Ny0wOSAwMDoyNjozOCArMDAwMApAQCAtMCwwICsxLDEyIEBACisyMDEwLTA3LTA2ICBHcsOp Z29pcmUgU3V0cmUgIDxncmVnb2lyZS5zdXRyZUBnbWFpbC5jb20+CisKKwkqIGtlcm4vcGFy dGl0aW9uLmMgKGdydWJfcGFydGl0aW9uX2NoZWNrX2NvbnRhaW5tZW50KTogTmV3IGZ1bmN0 aW9uIHRvCisJY2hlY2sgdGhhdCBhIHBhcnRpdGlvbiBpcyBwaHlzaWNhbGx5IGNvbnRhaW5l ZCBpbiBhIHBhcmVudC4gIFNpbmNlCisJb2Zmc2V0cyBhcmUgcmVsYXRpdmUgKGFuZCBub24t bmVnYXRpdmUpLCB0aGlzIHJlZHVjZXMgdG8gY2hlY2tpbmcgdGhhdAorCXRoZSBwYXJ0aXRp b24gZW5kcyBiZWZvcmUgaXRzIHBhcmVudC4KKwkoZ3J1Yl9wYXJ0aXRpb25fbWFwX3Byb2Jl KTogRGlzY2FyZCBvdXQtb2YtcmFuZ2Ugc3ViLXBhcnRpdGlvbnMuCisJKGdydWJfcGFydGl0 aW9uX2l0ZXJhdGUpOiBMaWtld2lzZS4KKwkqIGluY2x1ZGUvZ3J1Yi9wYXJ0aXRpb24uaCAo Z3J1Yl9wYXJ0aXRpb25fbWFwKTogU2xpZ2h0bHkgbW9yZSBkZXRhaWxlZAorCWNvbW1lbnRz LgorCSogcGFydG1hcC9ic2RsYWJlbC5jIChic2RsYWJlbF9wYXJ0aXRpb25fbWFwX2l0ZXJh dGUpOiBEaXNjYXJkCisJcGFydGl0aW9ucyB0aGF0IHN0YXJ0IGJlZm9yZSB0aGVpciBwYXJl bnQsIGFuZCBhZGQgZGVidWcgcHJpbnRmcy4KCj09PSBtb2RpZmllZCBmaWxlICdpbmNsdWRl L2dydWIvcGFydGl0aW9uLmgnCi0tLSBpbmNsdWRlL2dydWIvcGFydGl0aW9uLmgJMjAxMC0w Ni0xMiAxMzozMzowOSArMDAwMAorKysgaW5jbHVkZS9ncnViL3BhcnRpdGlvbi5oCTIwMTAt MDctMDkgMDA6MjY6MzggKzAwMDAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RydWN0IGdydWJfcGFy dGl0aW9uCiAgIC8qIFRoZSBwYXJ0aXRpb24gbnVtYmVyLiAgKi8KICAgaW50IG51bWJlcjsK IAotICAvKiBUaGUgc3RhcnQgc2VjdG9yLiAgKi8KKyAgLyogVGhlIHN0YXJ0IHNlY3RvciAo cmVsYXRpdmUgdG8gcGFyZW50KS4gICovCiAgIGdydWJfZGlza19hZGRyX3Qgc3RhcnQ7CiAK ICAgLyogVGhlIGxlbmd0aCBpbiBzZWN0b3IgdW5pdHMuICAqLwpAQCAtNjAsNyArNjAsNyBA QCBzdHJ1Y3QgZ3J1Yl9wYXJ0aXRpb24KICAgLyogVGhlIGluZGV4IG9mIHRoaXMgcGFydGl0 aW9uIGluIHRoZSBwYXJ0aXRpb24gdGFibGUuICAqLwogICBpbnQgaW5kZXg7CiAKLSAgLyog UGFyZW50IHBhcnRpdGlvbiBtYXAuICAqLworICAvKiBQYXJlbnQgcGFydGl0aW9uIChwaHlz aWNhbGx5IGNvbnRhaW5zIHRoaXMgcGFydGl0aW9uKS4gICovCiAgIHN0cnVjdCBncnViX3Bh cnRpdGlvbiAqcGFyZW50OwogCiAgIC8qIFRoZSB0eXBlIHBhcnRpdGlvbiBtYXAuICAqLwoK PT09IG1vZGlmaWVkIGZpbGUgJ2tlcm4vcGFydGl0aW9uLmMnCi0tLSBrZXJuL3BhcnRpdGlv bi5jCTIwMTAtMDItMDYgMjA6MDA6NTMgKzAwMDAKKysrIGtlcm4vcGFydGl0aW9uLmMJMjAx MC0wNy0wOSAwMDoyNjozOCArMDAwMApAQCAtMjMsNiArMjMsMzcgQEAKIAogZ3J1Yl9wYXJ0 aXRpb25fbWFwX3QgZ3J1Yl9wYXJ0aXRpb25fbWFwX2xpc3Q7CiAKKy8qCisgKiBDaGVja3Mg dGhhdCBkaXNrLT5wYXJ0aXRpb24gY29udGFpbnMgcGFydC4gIFRoaXMgZnVuY3Rpb24gYXNz dW1lcyB0aGF0IHRoZQorICogc3RhcnQgb2YgcGFydCBpcyByZWxhdGl2ZSB0byB0aGUgc3Rh cnQgb2YgZGlzay0+cGFydGl0aW9uLiAgUmV0dXJucyAxIGlmCisgKiBkaXNrLT5wYXJ0aXRp b24gaXMgbnVsbC4KKyAqLworc3RhdGljIGludAorZ3J1Yl9wYXJ0aXRpb25fY2hlY2tfY29u dGFpbm1lbnQgKGNvbnN0IGdydWJfZGlza190IGRpc2ssCisJCQkJICBjb25zdCBncnViX3Bh cnRpdGlvbl90IHBhcnQpCit7CisgIGlmIChkaXNrLT5wYXJ0aXRpb24gPT0gTlVMTCkKKyAg ICByZXR1cm4gMTsKKworICBpZiAocGFydC0+c3RhcnQgKyBwYXJ0LT5sZW4gPiBkaXNrLT5w YXJ0aXRpb24tPmxlbikKKyAgICB7CisgICAgICBjaGFyICpwYXJ0bmFtZTsKKworICAgICAg cGFydG5hbWUgPSBncnViX3BhcnRpdGlvbl9nZXRfbmFtZSAoZGlzay0+cGFydGl0aW9uKTsK KyAgICAgIGdydWJfZHByaW50ZiAoInBhcnRpdGlvbiIsICJzdWItcGFydGl0aW9uICVzJWQg b2YgKCVzLCVzKSBlbmRzIGFmdGVyIHBhcmVudC5cbiIsCisJCSAgICBwYXJ0LT5wYXJ0bWFw LT5uYW1lLCBwYXJ0LT5udW1iZXIgKyAxLCBkaXNrLT5uYW1lLCBwYXJ0bmFtZSk7CisjaWZk ZWYgR1JVQl9VVElMCisgICAgICBncnViX3V0aWxfd2FybiAoIkRpc2NhcmRpbmcgaW1wcm9w ZXJseSBuZXN0ZWQgcGFydGl0aW9uICglcywlcywlcyVkKSIsCisJCSAgICAgIGRpc2stPm5h bWUsIHBhcnRuYW1lLCBwYXJ0LT5wYXJ0bWFwLT5uYW1lLCBwYXJ0LT5udW1iZXIgKyAxKTsK KyNlbmRpZgorICAgICAgZ3J1Yl9mcmVlIChwYXJ0bmFtZSk7CisKKyAgICAgIHJldHVybiAw OworICAgIH0KKworICByZXR1cm4gMTsKK30KKwogc3RhdGljIGdydWJfcGFydGl0aW9uX3QK IGdydWJfcGFydGl0aW9uX21hcF9wcm9iZSAoY29uc3QgZ3J1Yl9wYXJ0aXRpb25fbWFwX3Qg cGFydG1hcCwKIAkJCSAgZ3J1Yl9kaXNrX3QgZGlzaywgaW50IHBhcnRudW0pCkBAIC0zMSwy MCArNjIsMjEgQEAgZ3J1Yl9wYXJ0aXRpb25fbWFwX3Byb2JlIChjb25zdCBncnViX3Bhcgog CiAgIGF1dG8gaW50IGZpbmRfZnVuYyAoZ3J1Yl9kaXNrX3QgZCwgY29uc3QgZ3J1Yl9wYXJ0 aXRpb25fdCBwYXJ0aXRpb24pOwogCi0gIGludCBmaW5kX2Z1bmMgKGdydWJfZGlza190IGQg X19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAorICBpbnQgZmluZF9mdW5jIChncnViX2Rpc2tf dCBkc2ssCiAJCSBjb25zdCBncnViX3BhcnRpdGlvbl90IHBhcnRpdGlvbikKICAgICB7Ci0g ICAgICBpZiAocGFydG51bSA9PSBwYXJ0aXRpb24tPm51bWJlcikKLQl7Ci0JICBwID0gKGdy dWJfcGFydGl0aW9uX3QpIGdydWJfbWFsbG9jIChzaXplb2YgKCpwKSk7Ci0JICBpZiAoISBw KQotCSAgICByZXR1cm4gMTsKKyAgICAgIGlmIChwYXJ0bnVtICE9IHBhcnRpdGlvbi0+bnVt YmVyKQorCXJldHVybiAwOwogCi0JICBncnViX21lbWNweSAocCwgcGFydGl0aW9uLCBzaXpl b2YgKCpwKSk7Ci0JICByZXR1cm4gMTsKLQl9CisgICAgICBpZiAoIShncnViX3BhcnRpdGlv bl9jaGVja19jb250YWlubWVudCAoZHNrLCBwYXJ0aXRpb24pKSkKKwlyZXR1cm4gMDsKIAot ICAgICAgcmV0dXJuIDA7CisgICAgICBwID0gKGdydWJfcGFydGl0aW9uX3QpIGdydWJfbWFs bG9jIChzaXplb2YgKCpwKSk7CisgICAgICBpZiAoISBwKQorCXJldHVybiAxOworCisgICAg ICBncnViX21lbWNweSAocCwgcGFydGl0aW9uLCBzaXplb2YgKCpwKSk7CisgICAgICByZXR1 cm4gMTsKICAgICB9CiAKICAgcGFydG1hcC0+aXRlcmF0ZSAoZGlzaywgZmluZF9mdW5jKTsK QEAgLTEzOCw2ICsxNzAsMTAgQEAgZ3J1Yl9wYXJ0aXRpb25faXRlcmF0ZSAoc3RydWN0IGdy dWJfZGlzawogCQkgICAgY29uc3QgZ3J1Yl9wYXJ0aXRpb25fdCBwYXJ0aXRpb24pCiAgICAg ewogICAgICAgc3RydWN0IGdydWJfcGFydGl0aW9uIHAgPSAqcGFydGl0aW9uOworCisgICAg ICBpZiAoIShncnViX3BhcnRpdGlvbl9jaGVja19jb250YWlubWVudCAoZHNrLCBwYXJ0aXRp b24pKSkKKwlyZXR1cm4gMDsKKwogICAgICAgcC5wYXJlbnQgPSBkc2stPnBhcnRpdGlvbjsK ICAgICAgIGRzay0+cGFydGl0aW9uID0gMDsKICAgICAgIGlmIChob29rIChkc2ssICZwKSkK Cj09PSBtb2RpZmllZCBmaWxlICdwYXJ0bWFwL2JzZGxhYmVsLmMnCi0tLSBwYXJ0bWFwL2Jz ZGxhYmVsLmMJMjAxMC0wMy0yNiAxNDo0NDoxMyArMDAwMAorKysgcGFydG1hcC9ic2RsYWJl bC5jCTIwMTAtMDctMDkgMDA6MjY6MzggKzAwMDAKQEAgLTU0LDcgKzU0LDcgQEAgYnNkbGFi ZWxfcGFydGl0aW9uX21hcF9pdGVyYXRlIChncnViX2RpcwogCiAgIGZvciAocC5udW1iZXIg PSAwOwogICAgICAgIHAubnVtYmVyIDwgZ3J1Yl9jcHVfdG9fbGUxNiAobGFiZWwubnVtX3Bh cnRpdGlvbnMpOwotICAgICAgIHAubnVtYmVyKyspCisgICAgICAgcC5udW1iZXIrKywgcG9z ICs9IHNpemVvZiAoc3RydWN0IGdydWJfcGFydGl0aW9uX2JzZF9lbnRyeSkpCiAgICAgewog ICAgICAgc3RydWN0IGdydWJfcGFydGl0aW9uX2JzZF9lbnRyeSBiZTsKIApAQCAtNjQsMTUg KzY0LDQzIEBAIGJzZGxhYmVsX3BhcnRpdGlvbl9tYXBfaXRlcmF0ZSAoZ3J1Yl9kaXMKICAg ICAgIGlmIChncnViX2Rpc2tfcmVhZCAoZGlzaywgcC5vZmZzZXQsIHAuaW5kZXgsIHNpemVv ZiAoYmUpLCAgJmJlKSkKIAlyZXR1cm4gZ3J1Yl9lcnJubzsKIAotICAgICAgcC5zdGFydCA9 IGdydWJfbGVfdG9fY3B1MzIgKGJlLm9mZnNldCkgLSBkZWx0YTsKKyAgICAgIHAuc3RhcnQg PSBncnViX2xlX3RvX2NwdTMyIChiZS5vZmZzZXQpOwogICAgICAgcC5sZW4gPSBncnViX2xl X3RvX2NwdTMyIChiZS5zaXplKTsKICAgICAgIHAucGFydG1hcCA9ICZncnViX2JzZGxhYmVs X3BhcnRpdGlvbl9tYXA7CiAKLSAgICAgIGlmIChiZS5mc190eXBlICE9IEdSVUJfUENfUEFS VElUSU9OX0JTRF9UWVBFX1VOVVNFRCkKLQlpZiAoaG9vayAoZGlzaywgJnApKQotCSAgcmV0 dXJuIGdydWJfZXJybm87CisgICAgICBncnViX2RwcmludGYgKCJwYXJ0aXRpb24iLAorCQkg ICAgInBhcnRpdGlvbiAlZDogdHlwZSAweCV4LCBzdGFydCAweCVsbHgsIGxlbiAweCVsbHhc biIsCisJCSAgICBwLm51bWJlciwgYmUuZnNfdHlwZSwKKwkJICAgICh1bnNpZ25lZCBsb25n IGxvbmcpIHAuc3RhcnQsCisJCSAgICAodW5zaWduZWQgbG9uZyBsb25nKSBwLmxlbik7CisK KyAgICAgIGlmIChiZS5mc190eXBlID09IEdSVUJfUENfUEFSVElUSU9OX0JTRF9UWVBFX1VO VVNFRCkKKwljb250aW51ZTsKKworICAgICAgaWYgKHAuc3RhcnQgPCBkZWx0YSkKKwl7Cisj aWZkZWYgR1JVQl9VVElMCisJICBjaGFyICpwYXJ0bmFtZTsKKyNlbmRpZgorCSAgZ3J1Yl9k cHJpbnRmICgicGFydGl0aW9uIiwKKwkJCSJwYXJ0aXRpb24gJWQ6IGludmFsaWQgc3RhcnQg KGZvdW5kIDB4JWxseCwgd2FudGVkID49IDB4JWxseClcbiIsCisJCQlwLm51bWJlciwKKwkJ CSh1bnNpZ25lZCBsb25nIGxvbmcpIHAuc3RhcnQsCisJCQkodW5zaWduZWQgbG9uZyBsb25n KSBkZWx0YSk7CisjaWZkZWYgR1JVQl9VVElMCisJICAvKiBkaXNrLT5wYXJ0aXRpb24gIT0g TlVMTCBhcyAwIDwgZGVsdGEgKi8KKwkgIHBhcnRuYW1lID0gZ3J1Yl9wYXJ0aXRpb25fZ2V0 X25hbWUgKGRpc2stPnBhcnRpdGlvbik7CisJICBncnViX3V0aWxfd2FybiAoIkRpc2NhcmRp bmcgaW1wcm9wZXJseSBuZXN0ZWQgcGFydGl0aW9uICglcywlcywlcyVkKSIsCisJCQkgIGRp c2stPm5hbWUsIHBhcnRuYW1lLCBwLnBhcnRtYXAtPm5hbWUsIHAubnVtYmVyICsgMSk7CisJ ICBncnViX2ZyZWUgKHBhcnRuYW1lKTsKKyNlbmRpZgorCSAgY29udGludWU7CisJfQogCi0g ICAgICBwb3MgKz0gc2l6ZW9mIChzdHJ1Y3QgZ3J1Yl9wYXJ0aXRpb25fYnNkX2VudHJ5KTsK KyAgICAgIHAuc3RhcnQgLT0gZGVsdGE7CisKKyAgICAgIGlmIChob29rIChkaXNrLCAmcCkp CisJcmV0dXJuIGdydWJfZXJybm87CiAgICAgfQogCiAgIHJldHVybiBHUlVCX0VSUl9OT05F OwoK --------------060300070807000700050005--