dix/dispatch: Fix SmartScheduleClient interval adjustment to use best rather than pClient

pClient does not contain a live value after the transition to lists

https://bugs.freedesktop.org/show_bug.cgi?id=97765

Application Specific Information:
X.Org X Server 1.18.99.1 Build Date: 20160910
=================================================================
==16921==ERROR: AddressSanitizer: global-buffer-overflow on address 0x000108ce3834 at pc 0x000108880766 bp 0x7000045f76c0 sp 0x7000045f76b8
READ of size 4 at 0x000108ce3834 thread T6
    #0 0x108880765 in SmartScheduleClient dispatch.c:365
    #1 0x10887ecc5 in Dispatch dispatch.c:422
    #2 0x1088c05f1 in dix_main main.c:301
    #3 0x1082aabba in server_thread quartzStartup.c:66
    #4 0x7fffc5f16aaa in _pthread_body (libsystem_pthread.dylib+0x3aaa)
    #5 0x7fffc5f169f6 in _pthread_start (libsystem_pthread.dylib+0x39f6)
    #6 0x7fffc5f161fc in thread_start (libsystem_pthread.dylib+0x31fc)

Regressed-in: 8f1edf4bd3
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Jeremy Huddleston Sequoia 2016-09-11 03:07:44 -07:00 committed by Keith Packard
parent 265c4e6653
commit d81f9ce12a
1 changed files with 1 additions and 1 deletions

View File

@ -362,7 +362,7 @@ SmartScheduleClient(void)
* has run, bump the slice up to get maximal
* performance from a single client
*/
if ((now - pClient->smart_start_tick) > 1000 &&
if ((now - best->smart_start_tick) > 1000 &&
SmartScheduleSlice < SmartScheduleMaxSlice) {
SmartScheduleSlice += SmartScheduleInterval;
}