On 3/14/11 5:00 AM, Roman Rakus wrote:
> $ locale
> LANG=en_US.UTF-8
> LC_CTYPE="en_US.UTF-8"
> LC_NUMERIC="en_US.UTF-8"
> LC_TIME="en_US.UTF-8"
> LC_COLLATE="en_US.UTF-8"
> LC_MONETARY="en_US.UTF-8"
> LC_MESSAGES="en_US.UTF-8"
> LC_PAPER="en_US.UTF-8"
> LC_NAME="en_US.UTF-8"
> LC_ADDRESS="en_US.UTF-8"
> LC_TELEPHONE="en_US.UTF-8"
> LC_MEASUREMENT="en_US.UTF-8"
> LC_IDENTIFICATION="en_US.UTF-8"
> LC_ALL=
> 
> $ echo $BASH_VERSION
> 4.2.7(1)-release
> 
> $ [$'\xFD'$'\xBA']
> ^C
> 
> The bash 4.2 is in infinite loop. The bash 4.1 work well.

Here's a minimal patch.

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/
*** ../bash-4.2-patched/lib/glob/xmbsrtowcs.c   2010-05-30 18:36:27.000000000 
-0400
--- lib/glob/xmbsrtowcs.c       2011-03-14 14:22:11.000000000 -0400
***************
*** 174,180 ****
        wcslength = mbsnrtowcs(NULL, &tmp_p, nms, 0, &tmp_state);
  
        /* Conversion failed. */
!       if (wcslength == (size_t)-1)
        {
          free (wsbuf);
          *destp = NULL;
--- 174,180 ----
        wcslength = mbsnrtowcs(NULL, &tmp_p, nms, 0, &tmp_state);
  
        /* Conversion failed. */
!       if (wcslength == 0 || wcslength == (size_t)-1)
        {
          free (wsbuf);
          *destp = NULL;

Reply via email to