Control: tags -1 +patch

On Sat, Nov 21, 2015 at 9:33 AM, Zack Weinberg <za...@panix.com> wrote:

> /* expected output:           เพื่อ ให้ เหมาะสม กับ วิถีทาง ประเพณี ทาง ศาสนา 
> พุทธ */
> static const thwchar_t *x = L"เพื่อให้เหมาะสมกับวิถีทางประเพณีทางศาสนาพุทธ";

The minimal test case for this bug appears to be:
  L"ทางประเพณีทาง"
which causes double-free error.

And the next two words would trigger infinite loop:
  L"ทางประเพณีทางศาสนาพุทธ"

I've investigated this and found that it's caused by the optimization
in brk_recovery_try() in the recent release.

The attached patch should fix it.

I'm addressing it upstream and making a new release soon.
Thanks for catching it.

Regards,
-- 
Theppitak Karoonboonyanan
http://linux.thai.net/~thep/
Index: src/thbrk/brk-maximal.c
===================================================================
--- src/thbrk/brk-maximal.c	(revision 584)
+++ src/thbrk/brk-maximal.c	(working copy)
@@ -349,7 +349,7 @@
                 /* find matched nodes and delete them */
                 while (NULL != (match = brk_pool_match (pool_tail, node))) {
                     BrkPool *next = match->next;
-                    brk_pool_delete_node (pool_tail, match, env);
+                    pool = brk_pool_delete_node (pool, match, env);
                     pool_tail = next;
                 }
             }

Reply via email to