Hi team, Recently we found that Bug #614760 [1] affects stable release of recoll and confirmed by bug reporter, upstream and another users of same version from Ubuntu too. I would like to fix this in stable. I've built package successfully (in Squeeze pbuilder) and attached debdiff here. Resulted package+source can be found at [2] if someone want to test (amd64 only).
If this looks ok, please let me know further procedures. Thanks. [1] RC bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=614760 [2] http://people.debian.org/~kartik/packages/recoll/ -- Kartik Mistry | IRC: kart_ {0x1f1f, kartikm}.wordpress.com
diff -Nru recoll-1.13.04/debian/changelog recoll-1.13.04/debian/changelog --- recoll-1.13.04/debian/changelog 2010-05-03 09:49:07.000000000 +0530 +++ recoll-1.13.04/debian/changelog 2011-10-24 17:27:10.000000000 +0530 @@ -1,3 +1,11 @@ +recoll (1.13.04-3+squeeze1) stable; urgency=low + + * debian/patches/03_patch-unac-icclose.diff: + + plug conversion descriptor leak in unac.c::convert() error path, fixes + index crash (Closes: #614760) + + -- Kartik Mistry <[email protected]> Mon, 24 Oct 2011 17:25:04 +0530 + recoll (1.13.04-3) unstable; urgency=low * Added patch for xapian 1.2 compatibility from Olly Betts <[email protected]> diff -Nru recoll-1.13.04/debian/patches/03_patch-unac-icclose.diff recoll-1.13.04/debian/patches/03_patch-unac-icclose.diff --- recoll-1.13.04/debian/patches/03_patch-unac-icclose.diff 1970-01-01 05:30:00.000000000 +0530 +++ recoll-1.13.04/debian/patches/03_patch-unac-icclose.diff 2011-10-24 13:45:53.000000000 +0530 @@ -0,0 +1,53 @@ +Description: plug conversion descriptor leak in unac.c::convert() error path +Author: "Ersek, Laszlo" <[email protected]> +Bug-Debian: http://bugs.debian.org/614760 +Last-Update: 2011-10-24 + +--- recoll-1.13.04.orig/unac/unac.c ++++ recoll-1.13.04/unac/unac.c +@@ -10661,7 +10661,7 @@ static int convert(const char* from, con + if(errno == E2BIG) + /* fall thru to the E2BIG case below */; + else +- return -1; ++ goto err; + } else { + /* The offending character was replaced by a SPACE, skip it. */ + in += 2; +@@ -10670,7 +10670,7 @@ static int convert(const char* from, con + break; + } + } else { +- return -1; ++ goto err; + } + case E2BIG: + { +@@ -10690,7 +10690,7 @@ static int convert(const char* from, con + DEBUG("realloc %d bytes failed\n", out_size+1); + free(saved); + *outp = 0; +- return -1; ++ goto err; + } + } + out = out_base + length; +@@ -10698,7 +10698,7 @@ static int convert(const char* from, con + } + break; + default: +- return -1; ++ goto err; + break; + } + } +@@ -10710,6 +10710,9 @@ static int convert(const char* from, con + (*outp)[*out_lengthp] = '\0'; + + return 0; ++err: ++ iconv_close(cd); ++ return -1; + } + + int unacmaybefold_string(const char* charset, diff -Nru recoll-1.13.04/debian/patches/series recoll-1.13.04/debian/patches/series --- recoll-1.13.04/debian/patches/series 2010-05-03 09:47:08.000000000 +0530 +++ recoll-1.13.04/debian/patches/series 2011-10-24 13:46:24.000000000 +0530 @@ -1,2 +1,3 @@ 01_nostrip_final_binaries_437901.diff 02_recoll-prepare-for-xapian-1.2.diff +03_patch-unac-icclose.diff

