Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese

Pagetitle
String size underflow on fread
String size underflow on fread

String size underflow on fread

Esta ocorrência de erro é apresentada quando da utilização da função FRead() para leitura de um arquivo texto e/ou binário, quando informado erroneamente um tamanho de buffer negativo para leitura.

Para informações de como utilizar a função FRead(), consulte a documentação FRead().

 

Causas mais comum

O programa AdvPL está errado, possui um erro de lógica ou ausência de tratamento adequado para uso da função FRead().

A causa mais comum é uma rotina dinâmica codificada para ler um arquivo em um operação única, em que o arquivo é aberto, é obtido o seu tamanho total com a função FSeek() e depois o conteúdo total do arquivo é lido. Porém, não foi verificado se a abertura do arquivo foi bem sucessida e neste caso, a função FOpen() retorna o handle negativo inválido, que quando usado na função FSeek() faz a mesma retornar também -1, que não é um tamanho válido, e quando este retorno negativo é usado como argumento para o tamanho de buffer a ser lido pela função FRead(), a mesma aborta a execução da rotina com a ocorrência de erro acima.

 

Correção

o código-fonte AdvPL que está fazendo uso da função FRead(), deve ser revisado para não permitir uma situação em que seja utilizado um tamanho de buffer de leitura inválido.