* gnu/packages/patches/tidy-CVE-2015-5522+5523.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/web.scm (tidy)[source]: Add patch.
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Copied from Debian.
 | |
| 
 | |
| From c18f27a58792f7fbd0b30a0ff50d6b40a82f940d Mon Sep 17 00:00:00 2001
 | |
| From: Geoff McLane <ubuntu@geoffair.info>
 | |
| Date: Wed, 3 Jun 2015 20:26:03 +0200
 | |
| Subject: [PATCH] Issue #217 - avoid len going negative, ever...
 | |
| 
 | |
| ---
 | |
|  src/lexer.c | 8 +++++---
 | |
|  1 file changed, 5 insertions(+), 3 deletions(-)
 | |
| 
 | |
| diff --git a/src/lexer.c b/src/lexer.c
 | |
| index 376a3d8..664f806 100644
 | |
| --- a/src/lexer.c
 | |
| +++ b/src/lexer.c
 | |
| @@ -3739,16 +3740,17 @@ static tmbstr ParseValue( TidyDocImpl* doc, ctmbstr name,
 | |
|          /* and prompts attributes unless --literal-attributes is set to yes      */
 | |
|          /* #994841 - Whitespace is removed from value attributes                 */
 | |
|  
 | |
| -        if (munge &&
 | |
| +        /* Issue #217 - Also only if/while (len > 0) - MUST NEVER GO NEGATIVE! */
 | |
| +        if ((len > 0) && munge &&
 | |
|              TY_(tmbstrcasecmp)(name, "alt") &&
 | |
|              TY_(tmbstrcasecmp)(name, "title") &&
 | |
|              TY_(tmbstrcasecmp)(name, "value") &&
 | |
|              TY_(tmbstrcasecmp)(name, "prompt"))
 | |
|          {
 | |
| -            while (TY_(IsWhite)(lexer->lexbuf[start+len-1]))
 | |
| +            while (TY_(IsWhite)(lexer->lexbuf[start+len-1]) && (len > 0))
 | |
|                  --len;
 | |
|  
 | |
| -            while (TY_(IsWhite)(lexer->lexbuf[start]) && start < len)
 | |
| +            while (TY_(IsWhite)(lexer->lexbuf[start]) && (start < len) && (len > 0))
 | |
|              {
 | |
|                  ++start;
 | |
|                  --len;
 |