* gnu/packages/search.scm (swish-e): New variable. * gnu/packages/patches/swish-e-search.patch, gnu/packages/patches/swish-e-format-security.patch: New patches. * gnu/local.mk (dist_patch_DATA): Add them.
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From http://swish-e.org/archive/2015-09/13295.html
 | |
| 
 | |
| --- a/src/compress.c	
 | |
| +++ a/src/compress.c	
 | |
| @@ -995,7 +995,7 @@ void    remove_worddata_longs(unsigned char *worddata,int *sz_worddata)
 | |
|              progerr("Internal error in remove_worddata_longs");
 | |
|  
 | |
|          /* dst may be smaller than src. So move the data */
 | |
| -        memcpy(dst,src,data_len);
 | |
| +        memmove(dst,src,data_len);
 | |
|  
 | |
|          /* Increase pointers */
 | |
|          src += data_len;
 | |
| --- a/src/headers.c	
 | |
| +++ a/src/headers.c	
 | |
| @@ -280,7 +280,7 @@ static SWISH_HEADER_VALUE fetch_single_header( IndexFILE *indexf, HEADER_MAP *he
 | |
|  
 | |
|          case SWISH_NUMBER:
 | |
|          case SWISH_BOOL:
 | |
| -            value.number = *(unsigned long *) data_pointer;
 | |
| +            value.number = *(unsigned int *) data_pointer;
 | |
|  
 | |
|              /* $$$ Ugly hack alert! */
 | |
|              /* correct for removed files */
 | |
| --- a/src/swishspider	
 | |
| +++ a/src/swishspider	
 | |
| @@ -27,6 +27,7 @@ use LWP::UserAgent;
 | |
|  use HTTP::Status;
 | |
|  use HTML::Parser 3.00;
 | |
|  use HTML::LinkExtor;
 | |
| +use Encode;
 | |
|  
 | |
|      if (scalar(@ARGV) != 2) {
 | |
|          print STDERR "Usage: $0 localpath url\n";
 | |
| @@ -94,7 +95,7 @@ use HTML::LinkExtor;
 | |
|      # Don't allow links above the base
 | |
|      $URI::ABS_REMOTE_LEADING_DOTS = 1;
 | |
|  
 | |
| -    $p->parse( $$content_ref );
 | |
| +    $p->parse( decode_utf8 $$content_ref );
 | |
|      close( LINKS );
 | |
|  
 | |
|      exit;
 |