You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.8 KiB
52 lines
1.8 KiB
From d294c5d19587897546b91c4c75b2b64f42d7f391 Mon Sep 17 00:00:00 2001 |
|
From: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com> |
|
Date: Tue, 21 Jan 2014 10:49:39 -0200 |
|
Subject: [PATCH 036/237] change stop condition to avoid infinite loops |
|
|
|
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. |
|
--- |
|
ChangeLog | 12 ++++++++++++ |
|
grub-core/net/net.c | 2 +- |
|
2 files changed, 13 insertions(+), 1 deletion(-) |
|
|
|
diff --git a/ChangeLog b/ChangeLog |
|
index 10abfe2..f69d8c7 100644 |
|
--- a/ChangeLog |
|
+++ b/ChangeLog |
|
@@ -1,3 +1,15 @@ |
|
+2014-01-21 Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com> |
|
+ |
|
+ * grub-core/net/net.c (receive_packets): Change stop condition to avoid |
|
+ infinite loops. |
|
+ |
|
+ 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. |
|
+ |
|
2014-01-19 Colin Watson <cjwatson@ubuntu.com> |
|
|
|
* grub-core/osdep/freebsd/hostdisk.c (grub_util_fd_open): Ignore |
|
diff --git a/grub-core/net/net.c b/grub-core/net/net.c |
|
index 0e57e93..56355f3 100644 |
|
--- a/grub-core/net/net.c |
|
+++ b/grub-core/net/net.c |
|
@@ -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. */ |
|
-- |
|
2.9.3 |
|
|
|
|