]> git.proxmox.com Git - grub2.git/commitdiff
change stop condition to avoid infinite loops
authorPaulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
Tue, 21 Jan 2014 12:49:39 +0000 (10:49 -0200)
committerColin Watson <cjwatson@debian.org>
Fri, 4 Sep 2015 11:03:46 +0000 (12:03 +0100)
In net/net.c there is a while (1) that only exits if there is a stop
condition and more then 10 packages or if there is no package received.

If GRUB is idle and enter in this loop, the only condition to leave is
if it doesn't have incoming packages. In a network with heavy traffic
this never happens.

Origin: upstream, http://git.savannah.gnu.org/gitweb/?p=grub.git;a=commitdiff;h=d99d2f84166b0f60673d5c0714605a153946c0fc
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1314134
Last-Update: 2014-04-29

Patch-Name: net-receive-packets-yield.patch

grub-core/net/net.c

index 0e57e93e8218f6e7830d258e30420131e5b97a51..56355f3c98c0f9f99fdc644fd38a610677cc3196 100644 (file)
@@ -1453,7 +1453,7 @@ receive_packets (struct grub_net_card *card, int *stop_condition)
        }
       card->opened = 1;
     }
-  while (1)
+  while (received < 100)
     {
       /* Maybe should be better have a fixed number of packets for each card
         and just mark them as used and not used.  */