Date: Tuesday, January 17, 2017 @ 22:15:32 Author: bisson Revision: 286899
fix FS#52595 Added: unison/trunk/large.patch Modified: unison/trunk/PKGBUILD -------------+ PKGBUILD | 9 ++++++++- large.patch | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-01-17 21:30:14 UTC (rev 286898) +++ PKGBUILD 2017-01-17 22:15:32 UTC (rev 286899) @@ -4,7 +4,7 @@ pkgname=unison pkgver=2.48.4 -pkgrel=1 +pkgrel=2 pkgdesc='File-synchronization tool' url='https://www.cis.upenn.edu/~bcpierce/unison/' arch=('i686' 'x86_64') @@ -12,12 +12,19 @@ optdepends=('gtk2: for gtk2 support') makedepends=('ocaml' 'lablgtk2' 'imagemagick') source=("https://www.cis.upenn.edu/~bcpierce/unison/download/releases/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.gz" + 'large.patch' 'desktop') sha1sums=('baeff0e3a942c710ce551cca118b891feca137c5' + '95433c2aa961cba19535fdf556e30bafa414a420' '9dad1737dd8d90e7ee2744a96cf71bd9f802a12a') options=('!makeflags') +prepare() { + cd "${srcdir}/src" + patch -p0 -i ../large.patch +} + build() { cd "${srcdir}/src" CFLAGS="" Added: large.patch =================================================================== --- large.patch (rev 0) +++ large.patch 2017-01-17 22:15:32 UTC (rev 286899) @@ -0,0 +1,49 @@ +diff -Nrua /usr/ports/net/unison/patches/patch-bytearray_stubs_c ./patches/patch-bytearray_stubs_c +--- /usr/ports/net/unison/patches/patch-bytearray_stubs_c Thu Jan 1 01:00:00 1970 ++++ ./patches/patch-bytearray_stubs_c Tue Jan 17 08:44:39 2017 +@@ -0,0 +1,45 @@ ++Fix rare SIGSEGV when transferring large replicas. ++Fix a theoretical integer overflow. ++ ++Patches from here: ++https://caml.inria.fr/mantis/view.php?id=7431#c17026 ++and here: ++https://caml.inria.fr/mantis/view.php?id=7431#c16962 ++ ++Related issue reports: ++https://github.com/bcpierce00/unison/issues/48 ++https://caml.inria.fr/mantis/view.php?id=7431 ++https://bugzilla.redhat.com/show_bug.cgi?id=1401759 ++ ++Thanks to Alex Markley and OCaml developers ++--- bytearray_stubs.c.orig Tue Jan 17 08:41:00 2017 +++++ bytearray_stubs.c Tue Jan 17 08:41:21 2017 ++@@ -5,6 +5,7 @@ ++ ++ #include "caml/intext.h" ++ #include "caml/bigarray.h" +++#include "caml/memory.h" ++ ++ CAMLprim value ml_marshal_to_bigarray(value v, value flags) ++ { ++@@ -21,15 +22,18 @@ CAMLprim value ml_marshal_to_bigarray(value v, value f ++ ++ CAMLprim value ml_unmarshal_from_bigarray(value b, value ofs) ++ { +++ CAMLparam1(b); /* Holds [b] live until unmarshalling completes. */ +++ value result; ++ struct caml_bigarray *b_arr = Bigarray_val(b); ++- return input_value_from_block (Array_data (b_arr, ofs), +++ result = input_value_from_block (Array_data (b_arr, ofs), ++ b_arr->dim[0] - Long_val(ofs)); +++ CAMLreturn(result); ++ } ++ ++ CAMLprim value ml_blit_string_to_bigarray ++ (value s, value i, value a, value j, value l) ++ { ++- char *src = String_val(s) + Int_val(i); +++ char *src = String_val(s) + Long_val(i); ++ char *dest = Array_data(Bigarray_val(a), j); ++ memcpy(dest, src, Long_val(l)); ++ return Val_unit;