Mientras que la lectura de un valor de archivo para un entero, coverity de verificación está dando el siguiente error

Llamar a la función «fread» mancha argumento «readval»

//coverity note: Calling function "fread" taints argument "readval".
if(fread(&readval, sizeof(int), 1, fp) < 1) {
    return;
} else {
    //coverity note: Passing tainted variable "readval" to a tainted sink.
    f1(&readval);
}

Cómo manejar este error?
Qué comprobaciones de validez tengo que realizar para ‘readval’ para asegurarse de que no esté dañado.

¿Qué hace la f1() la función de hacer?
la f1 es el fseek(fp, readval, SEEK_SET);
f1() es el fseek() de la siguiente manera coverity dice ‘jump_offset’ y ‘readval’ ambos están contaminadas. jump_offset = readval + header_size; el fseek(fp, jump_offset, SEEK_SET);

OriginalEl autor coder | 2014-07-16

2 Comentarios

  1. 1

    Por lo que el problema es que usted está usando un manchado valor 😉

    Con más detalle, readval se establece una vez fuera, los datos y, a continuación, potencialmente utilizado como un argumento para el fseek. Este argumento podría poner más allá del final del archivo y hacer que su programa de choque.

    Que usted necesita para poner en algunas comprobaciones para asegurarse de que usted no caminar fuera de la final de el archivo.

    el parámetro que se le pase el fseek puede venir de cualquier lugar.
    Voy a añadir comprobar en el fseek-retorno de valor y ejecutar coverity vuelva a comprobar para asegurarse de esta revisión. Pero offset-parámetro que se le pase el fseek (en este caso jump_offset) puede venir de cualquier parte. Se puede leer desde archivo o se puede calcular de alguna forma. Coverity mostró las notificaciones a partir de fread. Después de leer las preguntas sobre ‘manchado’ valores ahora no estoy seguro de si tengo que poner un cheque por valor de retorno de el fseek o fread sí mismo.
    otra pregunta sobre la manchado valor

    OriginalEl autor Mark Robinson

  2. 0

    Agregar una aserción a la derecha después de obtener el readval de fread. asegúrese de readval está en un rango razonable.

    Por CIERTO, que «afirman» debe también ser eficaz en la versión

    OriginalEl autor gang2k

Dejar respuesta

Please enter your comment!
Please enter your name here