On Tue, Jul 22, 2014 at 06:06:46PM -0600, Stephen Warren wrote: > From: Stephen Warren <swar...@nvidia.com> > > When "pxe boot" downloads the initrd/kernel/DTB, netboot_common() saves > the downloaded filename to global variable BootFile. If the boot > operation is aborted, this global state is not cleared. If "dhcp" is > executed later without any arguments, BootFile is not cleared, and when > the DHCP response is received, BootpCopyNetParams() writes the value into > environment variable bootfile. > > This causes the following scenario: > > * Boot script executes dhcp; pxe get; pxe boot > > * User CTRL-C's the PXE menu, which causes the first menu item to be > booted, which causes some file to be downloaded. > > (This boot-on-CTRL-C behaviour is arguably a bug too, but it's a > separate bug and the bug this patch fixes would still exist if the user > simply waited to press CTRL-C until "pxe boot" started downloading > files) > > * User CTRL-C's the file downloads, but the filename is still written to > the bootfile environment variable. > > * User re-runs the boot command, which in my case executes "dhcp; pxe get; > pxe boot" again, and "dhcp" picks up the saved bootfile environment > variable and proceeds to download a file that it shouldn't. > > To solve this, modify the implementation of "pxe get" to clear BootFile > if the whole boot operation fails, which avoids this whole mess. > > An alternative would be to modify netboot_common() such that the no- > arguments case explicitly clears the global variable BootFile. However, > that would prevent the following command sequences from working: > > $ dhcp filename # downloads "filename" > $ dhcp # downloads $bootfile, i.e. "filename" > > or: > $ setenv bootfile filename > $ dhcp # downloads $bootfile, i.e. "filename" > > ... and I assume someone relies on U-Boot working that way. > > Signed-off-by: Stephen Warren <swar...@nvidia.com> > Acked-by: Joe Hershberger <joe.hershber...@ni.com>
Applied to u-boot/master, thanks! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot