Fix num_masks/length overflow test for XiSelectEvents
Have to set windowid to a valid value first, since that check appears earlier in the code than the masks/length check. Also have to have data[] set large enough so that reading mask data for 0xFFFF masks doesn't overflow past the end of the array into uninitialized data. Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
		
							parent
							
								
									13decf5efe
								
							
						
					
					
						commit
						139368f7ae
					
				| 
						 | 
					@ -60,7 +60,7 @@
 | 
				
			||||||
#include "protocol-common.h"
 | 
					#include "protocol-common.h"
 | 
				
			||||||
#include <glib.h>
 | 
					#include <glib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static unsigned char *data[4096 * 16]; /* the request data buffer */
 | 
					static unsigned char *data[4096 * 20]; /* the request data buffer */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int __wrap_XISetEventMask(DeviceIntPtr dev, WindowPtr win, int len, unsigned char* mask)
 | 
					int __wrap_XISetEventMask(DeviceIntPtr dev, WindowPtr win, int len, unsigned char* mask)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -284,6 +284,7 @@ static void test_XISelectEvents(void)
 | 
				
			||||||
    request_XISelectEvent(req, BadWindow);
 | 
					    request_XISelectEvent(req, BadWindow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    g_test_message("Triggering num_masks/length overflow");
 | 
					    g_test_message("Triggering num_masks/length overflow");
 | 
				
			||||||
 | 
					    req->win = ROOT_WINDOW_ID;
 | 
				
			||||||
    /* Integer overflow - req->length can't hold that much */
 | 
					    /* Integer overflow - req->length can't hold that much */
 | 
				
			||||||
    req->num_masks = 0xFFFF;
 | 
					    req->num_masks = 0xFFFF;
 | 
				
			||||||
    request_XISelectEvent(req, BadLength);
 | 
					    request_XISelectEvent(req, BadLength);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue