Árvore de páginas

Correção de queda do serviço do DBAccess por invasão de memória em situação específica

SituaçãoUtilização da função TCRefresh com string superior a 250 caracteres.
OcorrênciaCaso a função TCRefresh seja chamada utilizando uma string com mais de 250 caracteres, ocorre uma invasão de memória, que causa instabilidade e queda no serviço do DBAccess. Neste caso em particular, a invasão de memória não é percebida no momento da chamada da função, mas a partir deste momento, o serviço do DBAccess pode cair em questão de minutos.
Correção

A manipulação de memória utilizada na operação envolvida foi protegida, para não exceder o limite de memória do buffer, e gerar uma ocorrência de erro interna "tAutochar overflow on strcat" no DBAccess, que finaliza apenas o processo atual, sem causar instabilidade ou queda do serviço.

A função TCRefresh foi concebida para receber como parâmetro o nome de uma tabela do SGDB, para atualizar as estruturas de cache e contador de numeração de registros do DBaccess. Dentro dos padrões de nomenclatura de tabelas da aplicação, este valor deveria ser inferior a 32 caracteres.

Informações adicionais
  • Referente ao chamado: TVFDHT
  • Referente à ocorrência: SSIM-1072
  • Disponível a partir do DBAccess Build 2016402, com data de geração igual ou superior a