Proposed stable update: recoll
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 <kartik@debian.org> 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 <olly@survex.com>
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" <lacos@caesar.elte.hu>
+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
Reply to: