Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • por Unleashed (8472) el Viernes, 17 Septiembre de 2004, 17:36h (#356857)
    ( http://www.flawedcode.org/ )
    Permiteme que te explique un poco, desde mis escasos conocimientos, cómo funciona un microprocesador.

    No es necesario que lo hagas, lo sé bastante bien.

    Cuando se hace referencia a un puntero nulo, es decir, la posición cero de memoria, la MMU pega un grito.

    Si lees bien, eso es lo que yo ya he dejado caer. Lo que han dicho es que solo por tener un puntero nulo no hace falta chequearlo.

    Además, deberías saber que no todos los procesadores tienen MMU. Así que el grito ocurre dependiendo de la arquitectura, de cómo implemente el SO sobre cada arquitectura el direccionamiento para cada proceso y de si realmente protege o no esa memoria de accesos externos.

    En caso de que por puñetera casualidad el buffer overflow no afecte memoria ajena

    Estás diciendo lo mismo que ya he dicho yo dos veces. El hecho de que haya un buffer overflow, el hecho de que se comprueben límites de arrays no tiene que ver directamente con que se reciba una señal SIGSEGV.

    Si tu te montas una máquina virtual, que sobre lo que hace el OS y la MMU además chequea todo acceso a memoria, lo único que consigues es un retardo de narices.

    El comprobar el acceso a memoria _NO_ es lo que hace la máquina virtual de Java (que es de lo que estábamos hablando). Lo que hace es chequeo de punteros nulos y límites de arrays. Que _NO_ es lo mismo que comprobar los accesos a memoria, no implica un retardo de narices por esa misma razón, y para lo cual _NO_ hace falta una VM.

    Saludos.
    --
    Unix have fun [barrapunto.com]
    [ Padre ]