* gnu/packages/gnome.scm (vte-0.28)[source]: Add patches. * gnu/packages/patches/vte-CVE-2012-2738-pt1.patch, gnu/packages/patches/vte-CVE-2012-2738-pt2.patch: New variables. * gnu/local.mk (dist_patch_DATA): Add them.
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From feeee4b5832b17641e505b7083e0d299fdae318e Mon Sep 17 00:00:00 2001
 | |
| From: Christian Persch <chpe@gnome.org>
 | |
| Date: Sat, 19 May 2012 17:36:09 +0000
 | |
| Subject: emulation: Limit integer arguments to 65535
 | |
| 
 | |
| To guard against malicious sequences containing excessively big numbers,
 | |
| limit all parsed numbers to 16 bit range. Doing this here in the parsing
 | |
| routine is a catch-all guard; this doesn't preclude enforcing
 | |
| more stringent limits in the handlers themselves.
 | |
| 
 | |
| https://bugzilla.gnome.org/show_bug.cgi?id=676090
 | |
| ---
 | |
| diff --git a/src/table.c b/src/table.c
 | |
| index 140e8c8..85cf631 100644
 | |
| --- a/src/table.c
 | |
| +++ b/src/table.c
 | |
| @@ -550,7 +550,7 @@ _vte_table_extract_numbers(GValueArray **array,
 | |
|  		if (G_UNLIKELY (*array == NULL)) {
 | |
|  			*array = g_value_array_new(1);
 | |
|  		}
 | |
| -		g_value_set_long(&value, total);
 | |
| +		g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT));
 | |
|  		g_value_array_append(*array, &value);
 | |
|  	} while (i++ < arginfo->length);
 | |
|  	g_value_unset(&value);
 | |
| diff --git a/src/vteseq.c b/src/vteseq.c
 | |
| index 457c06a..46def5b 100644
 | |
| --- a/src/vteseq.c
 | |
| +++ b/src/vteseq.c
 | |
| @@ -557,7 +557,7 @@ vte_sequence_handler_multiple(VteTerminal *terminal,
 | |
|                                GValueArray *params,
 | |
|                                VteTerminalSequenceHandler handler)
 | |
|  {
 | |
| -        vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG);
 | |
| +        vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXUSHORT);
 | |
|  }
 | |
|  
 | |
|  static void
 | |
| --
 | |
| cgit v0.9.0.2
 |