Bug en BSD encontrado después de 25 años

Ya pasó algo de tiempo desde que se solucionó  tan sonado problema del mundo de *BSD, y no quería dejar de postear la segunda parte de esta hIstoria, tomada de The Inquirer UK.

Un desarrollador de OpenBSD ha logrado determinar la causa y la solución a un error que afectaba a todas las versiones de BSD (incluida, por ejemplo Mac OS X) y que llevaba presente en ellas desde hacía 25 años. Más vale tarde que nunca.

<!–
//

El error surgía al trabajar con el protocolo Samba en máquinas con sistemas MS-DOS, en las cuales se producían fallos de consistencia en los datos transmitidos. Marc Balmer, un desarrollador de OpenBSD, se puso en contacto con los desarrolladores de Samba, que le explicaron que el código que se encargaba de leer directorios en la implementación de Samba en BSD estaba corrupto desde hacía 25 años. Aunque no les creyó inicialmente, se puso a investigar el problema.

Y finalmente pudo reproducirlo y averiguar la causa. El problema ocurría porque el código que borraba una entrada de directorio establecía su número de i-nodo a cero, pero el código que leía la entrada de directorio precisamente “pasaba” de cualquier entrada con un i-nodo con valor cero. Una simple modificación de la función readdir solucionó un problema que llevaba presente en BSD desde hacía 25 años. Incluso en versiones derivadas, como el sistema operativo de Apple, Mac OS X, que desciende también de este legendario sistema operativo.

Fuente:

The Inquirer UK

Javier Pastor

Deja un comentario