From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1Ll5Ze-0007If-5M for mharc-grub-devel@gnu.org; Sat, 21 Mar 2009 14:05:34 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Ll5Zb-0007FV-Fh for grub-devel@gnu.org; Sat, 21 Mar 2009 14:05:31 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Ll5ZW-0007B8-Aw for grub-devel@gnu.org; Sat, 21 Mar 2009 14:05:31 -0400 Received: from [199.232.76.173] (port=49406 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ll5ZW-0007B5-7n for grub-devel@gnu.org; Sat, 21 Mar 2009 14:05:26 -0400 Received: from mx20.gnu.org ([199.232.41.8]:18699) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Ll5ZV-0005c9-Kx for grub-devel@gnu.org; Sat, 21 Mar 2009 14:05:25 -0400 Received: from fg-out-1718.google.com ([72.14.220.158]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Ll5ZU-0005eZ-Ua for grub-devel@gnu.org; Sat, 21 Mar 2009 14:05:25 -0400 Received: by fg-out-1718.google.com with SMTP id l27so182319fgb.7 for ; Sat, 21 Mar 2009 11:05:22 -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:content-transfer-encoding; bh=UuqhZBrXvHLqP4LPejmYd9/pV47Vi1S4felOVp2l9RY=; b=vPyAu+nFStfodYnVYQ8Iuq8v2nXvSy1K6IUtosRMkvuu4Yxw7gGhGvRvfBLNnRUC1I x6IGL3HYABNF4P/7h6Kqa87D7QvFxHkpcxjW+fwuzBjjO5lTH+d23JXliJXbt4x/b4FR KloBT8ZooB8HwtS5ESxsRBr5SrMr9MEXmKZfU= 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:content-transfer-encoding; b=CFoz71ro/izWmyzzsNnSIcrhVJH2R+eXrnszrcotaFSlZKHz7zT2mOp8jZc5dcZ0FY 5APPVHH5BbHPYRy9y0N6XB/WA9w+IyqkICt2Rd4M7klS8bvUHjdBgdy95xjTWxKaoS6B VExRXGvMxVctjg0f47GTE29Xt0kRf0EENNmOk= Received: by 10.86.95.20 with SMTP id s20mr2358878fgb.77.1237658722262; Sat, 21 Mar 2009 11:05:22 -0700 (PDT) Received: from ?192.168.1.25? (217-154.203-62.cust.bluewin.ch [62.203.154.217]) by mx.google.com with ESMTPS id e20sm959802fga.29.2009.03.21.11.05.21 (version=SSLv3 cipher=RC4-MD5); Sat, 21 Mar 2009 11:05:21 -0700 (PDT) Message-ID: <49C52C63.4050904@gmail.com> Date: Sat, 21 Mar 2009 19:05:23 +0100 From: phcoder User-Agent: Thunderbird 2.0.0.21 (X11/20090318) MIME-Version: 1.0 To: The development of GRUB 2 References: <49B82B65.3080506@gmail.com> <20090313191442.GC17068@thorin> <49BAC506.2030006@gmail.com> <20090313.134505.185970759.davem@davemloft.net> <49BAC797.9010200@gmail.com> <20090318101227.GB20072@thorin> <49C0F690.7060305@gmail.com> <20090321174629.GB18284@thorin> <49C52AE2.5070202@gmail.com> <20090321180315.GF18284@thorin> In-Reply-To: <20090321180315.GF18284@thorin> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-detected-kernel: by mx20.gnu.org: Linux 2.6 (newer, 2) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) Subject: Re: ELF bugfixes X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Mar 2009 18:05:31 -0000 Robert Millan wrote: > On Sat, Mar 21, 2009 at 06:58:58PM +0100, phcoder wrote: >> Robert Millan wrote: >>> On Wed, Mar 18, 2009 at 02:26:40PM +0100, phcoder wrote: >>>> Robert Millan wrote: >>>>> On Fri, Mar 13, 2009 at 09:52:39PM +0100, phcoder wrote: >>>>>> - grub_multiboot_payload_entry_offset = ehdr->e_entry - phdr(lowest_segment)->p_vaddr; >>>>>> + for (i = 0; i < ehdr->e_phnum; i++) >>>>>> + if (phdr(i)->p_vaddr <= ehdr->e_entry + && phdr(i)->p_vaddr >>>>>> + phdr(i)->p_memsz > ehdr->e_entry) >>>>>> + grub_multiboot_payload_entry_offset = (ehdr->e_entry - phdr(i)->p_vaddr) >>>>>> + + (phdr(i)->p_paddr - phdr(lowest_segment)->p_paddr); >>>>> You need to handle the case in which grub_multiboot_payload_entry_offset is left >>>>> uninitialized (it needs to be initialized each time the multiboot command is >>>>> run, not just when the module is loaded). >>>>> >>>> module? actually it's when loading image. Perhaps you mean that >>>> additional error check is necessary >>> I meant GRUB's multiboot.mod, not the payload's module. Sorry I wasn't clear. >>> >> With this error check if grub_multiboot_payload_entry_offset it can >> happen only if no image is loaded. And actually >> grub_multiboot_payload_entry_offset is set to 0 at multiboot.mod load >> So I don't really understand the problem > > You can't rely on grub_multiboot_payload_entry_offset being set to 0, because > any subsequent call of "multiboot /something" has the potential to override > this. You must not assume the multiboot command is only going to be run once. > No but it always corresponds to the current image. It's set either in multiboot.c or in grub_multiboot_load_elf -- Regards Vladimir 'phcoder' Serbinenko