gawk está travando por regexp complexo quando LANG está definido como .UTF-8 em 16.04

0

O comando a seguir irá travar no meu sistema quando a variável de ambiente LANG estiver definida como, por exemplo. en_US.UTF-8 , mas funcionará bem com LANG=C :

/usr/bin/gawk '
  BEGIN {
    match(str, /^([^--03-603-7]|(([2-7][0-7])|(0[0-7][0-7])|([1-467][0-7][0-7])|(5[0-7][0-7])|(0[0-7][0-7][0-7])|([1-3][0-7][0-7][0-7])|(4[0-7][0-7][0-7])))([^--03-603-7]|(([2-7][0-7])|(0[0-7][0-7])|([1-467][0-7][0-7])|(5[0-7][0-7])|(0[0-7][0-7][0-7])|([1-3][0-7][0-7][0-7])|(4[0-7][0-7][0-7])))*/) }'

A saída do erro é

gawk: cmd. line:3: fatal error: internal error: segfault

Olhando para o dump principal, o travamento acontece no analisador yacc gerado para a linguagem AWK (especificamente na rotina yexc regexp lib dfacomp() ). Isso não acontece por exemplo. Debian 8.6 nem em outros Linuxen eu testei.

Este é um problema conhecido? Perguntando porque o problema pode ser que meu sistema foi atualizado a partir de 15.10.

    
por imhotap 03.03.2018 / 00:47

0 respostas