When looping over the registered map ranges, don't use the variable holding the final result as loop variable - It would always be initialized, on an empty list or when we run past the end of the list when no entry was found.
Signed-off-by: Egbert Eich <[email protected]> --- os/busfault.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/os/busfault.c b/os/busfault.c index d4afa6d..53f02e6 100644 --- a/os/busfault.c +++ b/os/busfault.c @@ -98,13 +98,15 @@ static void busfault_sigaction(int sig, siginfo_t *info, void *param) { void *fault = info->si_addr; - struct busfault *busfault = NULL; + struct busfault *tmp, *busfault = NULL; void *new_addr; /* Locate the faulting address in our list of shared segments */ - xorg_list_for_each_entry(busfault, &busfaults, list) { - if ((char *) busfault->addr <= (char *) fault && (char *) fault < (char *) busfault->addr + busfault->size) { + xorg_list_for_each_entry(tmp, &busfaults, list) { + if ((char *) tmp->addr <= (char *) fault && + (char *) fault < (char *) tmp->addr + tmp->size) { + busfault = tmp; break; } } -- 2.5.3 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
