Capítulo 5. Compilador e Ferramentas

tail --follow funciona adequadamente nos arquivos no sistema de arquivos em cluster Veritas (VXFS)

O sistema de arquivos em cluster Veritas (VXFS) é um sistema de arquivos remoto, e em tais sistemas,tail não pode usar a funcionalidade inotify para o modo --follow. O sistema de arquivos em cluster Veritas foi adicionado à lista de sistemas de arquivos remotos, onde o modo polling é usado no lugar de inotify. Agora, tail --follow pode funcionar corretamente mesmo quando usado nos arquivos em VXFS.

O comando dd é capaz de exibir o progresso de transferência

O comando dd, que é usado para copiar arquivos por bytes, agora oferece a opção status=progress para exibir o progresso da transferência. Isto é bastante útil principalmente para as transferências de arquivos grandes, pois permite ao usuário estimar o tempo restante e detectar prováveis problemas com a transferência.

Melhor tempo de espera em libcurl

A biblioteca libcurl utilizava um longo e desnecessário atraso de bloqueio para as ações sem descriptores de arquivo ativos, mesmo para operações breves. Isto significava que algumas ações, tais como a resolução de um nome de host usando /etc/hosts, levavam muito tempo para serem completadas. O código de bloqueio em libcurl foi, agora, modificado para que o atraso inicial seja breve e aumente gradualmente até que um evento ocorra. As operações libcurl passam a ser completadas de forma mais rápida.

A biblioteca libcurl implementa uma comunicação SSL sem bloqueio

Anteriormente, a biblioteca libcurl não implementava uma comunicação SSL sem bloqueio, o que afetava negativamente o desempenho dos aplicativos baseados na API libcurl multi. Para resolver este problema, a comunicação SSL sem bloqueio foi implementada em libcurl e a API libcurl multi agora retorna imediatamente o controle para o aplicativo sempre que não pode ler ou gravar dados do ou para o soquete de rede subjacente.

O GDB no IBM Power Systems não apresenta mais falhas quando acessando a tabela de símbolos

Anteriormente, o GDB no IBM Power Systems de 64 bits desalocava incorretamente uma variável importante que retinha a tabela de símbolos para o binário sendo depurado, causando uma falha de segmentação quando o GDB tentava acessar aquela tabela de símbolos. Para resolver este problema, esta variável, em particular, foi definida como persistente e o GDB pode, agora, acessar as informações necessárias depois, durante a sessão de depuração, sem ler uma região de memória inválida.

nscd foi atualizado para carregar automaticamente os dados de configuração

Esta atualização do nscd (Name Server Caching Daemon) adiciona um sistema de monitoramento baseado em inotify e de monitoramento de backup baseado em estatísticas para os arquivos de configuração nscd, assim o nscd detecta corretamente as alterações às suas configurações e recarrega os dados. Isto impede que o nscd retorne dados obsoletos.

A função da biblioteca dlopen não colide mais com as chamadas recursivas

Anteriormente, um defeito na função da biblioteca dlopen podia fazer com que as chamadas recursivas nesta função abortassem ou colidissem com uma asserção da biblioteca. As chamadas recursivas são possíveis se uma implementação malloc fornecida pelo usuário chamar dlopen.
A implementação é agora reentrante e as chamadas recursivas não abortam ou colidem mais com uma asserção.

A ferramenta operf reconhece identificadores de páginas enormes e estáticas

Anteriormente, ao criar o perfil de desempenho de código Java compilado just-in-time (JIT) com páginas estáticas e enormes habilitadas, o comando operf do OProfile registrava um grande número de amostras de evento na memória anônima (em anon_hugepage), ao invés de fazer o registro no método Java apropriado. Com esta atualização, operf reconhece os identificadores de páginas estáticas e enormes e mapeia as amostras corretamente aos métodos Java, quando usando páginas enormes alocadas estatisticamente.

rsync -X funciona corretamente

Anteriormente, a ferramenta rsync alterava a propriedade do arquivo depois, e não antes, de configurar os atributos de segurança. Como consequência, os atributos de segurança no destino ficavam ausentes e a execução do comando rsync -X não funcionava adequadamente sob algumas circunstâncias. Com esta atualização, a ordem das operações foi trocada e o rsync, agora, altera as propriedades antes da configuração dos atributos de segurança. Como resultado, os atributos de segurança ficam presentes, como esperado, na situação descrita.

Executáveis do subversion são criados com dados RELRO completos

Os executáveis fornecidos com o pacote subversion são agora criados com dados de realocação em modo somente leitura (RELRO), o que oferece proteção contra alguns tipos de ataques à corrupção de memória. Como resultado, será mais difícil explorar Subversion, caso futuras vulnerabilidades sejam descobertas.

A extensão de thread na TCL funciona corretamente

Antigamente, o suporte a threads na Linguagem de Comandos de Ferramentas (TCL) não era implementado da maneira ideal. Se a chamada fork() fosse usada junto com a extensão de thread habilitada no intérprete de TCL, o processo poderia ficar sem resposta. Por causa disso, o intérprete de TCL e o aplicativo TK eram enviados junto com a extensão de thread desabilitada. Como consequência, os aplicativos de terceiros dependentes de TCL ou TK com thread não funcionavam corretamente. Agora, uma correção foi implementada a este erro e a TCL e o TK possuem a extensão de thread habilitada por padrão.

Os conjuntos de codificação AES podem ser habilitados ou desabilitados explicitamente para TLS

Com os pacotes curl atualizados, é possível habilitar ou desabilitar explicitamente os novos conjuntos de codificação do Padrão Avançado de Criptografia (AES) a ser usado para o protocolo TLS.

OpenJDK 7 fornece suporte a ECC

Com esta atualização, o OpenJDK 7 passa a fornecer suporte à ECC (Elliptic Curve Cryptography) e às codificações associadas para conexões TLS. A ECC é, na maioria das vezes, usada em preferência a soluções mais antigas de criptografia para a realização de conexões de rede seguras.

O ABRT é capaz de salvar arquivos core_backtrace em vez de todo um despejo de memória

O ABRT agora pode ser configurado para gerar um backtrace sem escrever um arquivo de despejo de memória no disco. Isto pode economizar tempo ao trabalhar com processos que alocam grandes blocos de memória. Este recurso pode ser habilitado configurando a opção CreateCoreBacktrace como yes e a opção SaveFullCore como no no arquivo /etc/abrt/plugins/CCpp.conf.

Recursos de segurança adicionados à biblioteca padrão Python

Vários aprimoramentos de segurança, descritos na Proposta de Aprimoramento do Python 446 (http://legacy.python.org/dev/peps/pep-0466/), foram transferidos da versão upstream mais atual para a biblioteca padrão do Python. Estes aprimoramentos incluem, por exemplo, novos recursos no módulo ssl, como o suporte para a Indicação de Nome de Servidor (SNI), assim como o suporte para novos protocolos TLSv1.x, novos algorítimos hash em hashlib module, entre outros.

Novas configurações globais para a verificação do certificado SSL/TLS na biblioteca padrão do Python

Foram adicionadas novas opções que permitem aos usuários habilitar ou desabilitar a verificação do certificado SSL/TLS nos clientes HTTP (como urllib, httplib ou xmlrpclib) da biblioteca padrão do Python. As opções estão descritas na Proposta de Aprimoramento do Python 493 (https://www.python.org/dev/peps/pep-0493/). O valor padrão não verifica os certificados. Para mais detalhes, consulte https://access.redhat.com/articles/2039753.