por
pobrecito hablador
el Sábado, 01 Marzo de 2014, 09:17h
(#1356204)
El bug ha pasado tanto tiempo sin ser detectado por los problemas que conlleva el goto, sí. Si ese código estuviese estructurado como una cadena de if-then-elses (o incluso un if bien gordo), el bug no tendría cabida para empezar, y no sería tan difícil de detectar algo del estilo.
También lo habrían podido detectar activando los warnings de código muerto, pero eso es otro tema.
No digo que lo que esté mal sea el goto (el error es que hay uno de más), pero definitivamente la programación con gotos es lo que ha facilitado ese tipo de error, que es uno de los muchos problemas que producen los gotos. Es como si se encuentra un bug por hacer un strcpy sin comprobar el tamaño de la cadena de origen; sí, el error está en no haber comprobado el tamaño antes de llamar a strcpy, pero ese es el tipo de bugs que fomenta el uso de strcpy y el motivo por el que se desaconseja su uso.
Re:Es que no es una aplicacion de usuario
(Puntos:0)También lo habrían podido detectar activando los warnings de código muerto, pero eso es otro tema.
No digo que lo que esté mal sea el goto (el error es que hay uno de más), pero definitivamente la programación con gotos es lo que ha facilitado ese tipo de error, que es uno de los muchos problemas que producen los gotos. Es como si se encuentra un bug por hacer un strcpy sin comprobar el tamaño de la cadena de origen; sí, el error está en no haber comprobado el tamaño antes de llamar a strcpy, pero ese es el tipo de bugs que fomenta el uso de strcpy y el motivo por el que se desaconseja su uso.