summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2016-05-18 01:02:02 -0500
committerEric Bavier <bavier@member.fsf.org>2016-09-09 00:45:14 -0500
commita2319d2c8f4507b48e40e13ab56dbcfae3b2c533 (patch)
tree870f3912ae682c959c1bb8902a198b7df2952e01 /gnu/packages/patches
parent1fa3e33604f859a760c6b7605ff2cd725b609c30 (diff)
downloadguix-a2319d2c8f4507b48e40e13ab56dbcfae3b2c533.tar.gz
gnu: Add Swish-e.
* 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.
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/swish-e-format-security.patch33
-rw-r--r--gnu/packages/patches/swish-e-search.patch43
2 files changed, 76 insertions, 0 deletions
diff --git a/gnu/packages/patches/swish-e-format-security.patch b/gnu/packages/patches/swish-e-format-security.patch
new file mode 100644
index 0000000000..be9d7cb8a9
--- /dev/null
+++ b/gnu/packages/patches/swish-e-format-security.patch
@@ -0,0 +1,33 @@
+Borrowed from Debian.
+
+--- swish-e-2.4.7/src/parser.c	2009-04-05 03:58:32.000000000 +0200
++++ swish-e-2.4.7/src/parser.c	2013-06-11 13:53:08.196559035 +0200
+@@ -1760,7 +1760,7 @@
+     va_start(args, msg);
+     vsnprintf(str, 1000, msg, args );
+     va_end(args);
+-    xmlParserError(parse_data->ctxt, str);
++    xmlParserError(parse_data->ctxt, "%s", str);
+ }
+ 
+ static void warning(void *data, const char *msg, ...)
+@@ -1772,7 +1772,7 @@
+     va_start(args, msg);
+     vsnprintf(str, 1000, msg, args );
+     va_end(args);
+-    xmlParserWarning(parse_data->ctxt, str);
++    xmlParserWarning(parse_data->ctxt, "%s", str);
+ }
+ 
+ 
+--- swish-e-2.4.7/src/result_output.c	2009-04-05 03:58:32.000000000 +0200
++++ swish-e-2.4.7/src/result_output.c	2013-06-11 13:53:38.593550825 +0200
+@@ -752,7 +752,7 @@
+             s = (char *) emalloc(MAXWORDLEN + 1);
+             n = strftime(s, (size_t) MAXWORDLEN, fmt, localtime(&(pv->value.v_date)));
+             if (n && f)
+-                fprintf(f, s);
++                fprintf(f, "%s", s);
+             efree(s);
+         }
+         break;
diff --git a/gnu/packages/patches/swish-e-search.patch b/gnu/packages/patches/swish-e-search.patch
new file mode 100644
index 0000000000..2a57a31a08
--- /dev/null
+++ b/gnu/packages/patches/swish-e-search.patch
@@ -0,0 +1,43 @@
+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;