forked from pool/xorg-x11-server
Egbert Eich
72a2359e8f
Only initialize pointer when matched (boo#961439). - u_kdrive-UnregisterFd-Fix-off-by-one.patch -> U_kdrive-UnregisterFd-Fix-off-by-one.patch OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=601
43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
From: Egbert Eich <eich@suse.de>
|
|
Date: Mon Jan 11 21:48:15 2016 +0100
|
|
Subject: [PATCH]busfault_sigaction: Only initialize pointer when matched
|
|
Patch-mainline: to be upstreamed
|
|
|
|
References: boo#961439
|
|
Signed-off-by: Egbert Eich <eich@suse.com>
|
|
|
|
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 <eich@suse.de>
|
|
---
|
|
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;
|
|
}
|
|
}
|