En The Register han publicado un análisis en detalle del bug en CoreText. El problema radica en que el sistema de renderizado que usa Apple CoreText se basa en utilizar valores enteros con signo para intercambiar índices de arrays
y longitudes de cadenas de texto. En este fallo, un valor negativo -1
se pasa sin haber sido correctamente controlado a una función de una
librería que lo utiliza como un entero sin signo. Esto hace que sea
tomado como una longitud de cadena demasiado larga que se sale de los
límites del array que está preparado para se utilizado, causando un intento de lectura más allá del tamaño de la memoria reservada al array. Es decir, una lectura en una "unallocated memory", lo que genera la excepción fatal.
En el artículo podéis ver en detalle el análisis de ingeniería inversa
para aquellos que disfruten de esta disciplina. Mientras tanto,
esperamos que en la próxima actualización de los sistemas operativos de Apple esperados para la semana que viene sea solucionada. Este bug no existe en la última versión beta de iOS 7.
0 comentarios:
Publicar un comentario