prevent panic when packet sends too big sizes
This commit is contained in:
		
							parent
							
								
									33994537e6
								
							
						
					
					
						commit
						a2bd0978e7
					
				
					 1 changed files with 17 additions and 4 deletions
				
			
		|  | @ -141,12 +141,15 @@ fn print_cp437_data( | |||
|             let tile_y = char_y + y; | ||||
| 
 | ||||
|             let bitmap = font.get_bitmap(char_code); | ||||
|             print_pixel_grid( | ||||
|             if !print_pixel_grid( | ||||
|                 tile_x * TILE_SIZE as usize, | ||||
|                 tile_y * TILE_SIZE as usize, | ||||
|                 bitmap, | ||||
|                 display, | ||||
|             ); | ||||
|             ) { | ||||
|                 error!("stopping drawing text because char draw failed"); | ||||
|                 return; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -156,7 +159,7 @@ fn print_pixel_grid( | |||
|     offset_y: usize, | ||||
|     pixels: &PixelGrid, | ||||
|     display: &mut RwLockWriteGuard<PixelGrid>, | ||||
| ) { | ||||
| ) -> bool { | ||||
|     debug!( | ||||
|         "printing {}x{} grid at {offset_x} {offset_y}", | ||||
|         pixels.width(), | ||||
|  | @ -165,9 +168,19 @@ fn print_pixel_grid( | |||
|     for inner_y in 0..pixels.height() { | ||||
|         for inner_x in 0..pixels.width() { | ||||
|             let is_set = pixels.get(inner_x, inner_y); | ||||
|             display.set(offset_x + inner_x, offset_y + inner_y, is_set); | ||||
|             let x = offset_x + inner_x; | ||||
|             let y = offset_y + inner_y; | ||||
| 
 | ||||
|             if x >= display.width() || y >= display.height() { | ||||
|                 error!("stopping pixel grid draw because coordinate {x} {y} is out of bounds"); | ||||
|                 return false; | ||||
|             } | ||||
| 
 | ||||
|             display.set(x, y, is_set); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     true | ||||
| } | ||||
| 
 | ||||
| fn get_coordinates_for_index(offset: usize, index: usize) -> (usize, usize) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vinzenz Schroeter
						Vinzenz Schroeter