El ejemplo de código Java más popular en StackOverflow resultó tener un error

El más popular ejemplo de código Java, publicado en StackOverflow, resultó con un error que lleva a mostrar un resultado incorrecto bajo ciertas condiciones. El código en cuestión fue publicado en 2010 y ha acumulado más de mil recomendaciones, y además ha sido copiado en muchos proyectos y se encuentra en repositorios de GitHub aproximadamente 7 mil veces. Es notable que el error no fue encontrado por los usuarios que copiaron este código en sus proyectos, sino por el autor original del consejo.

El código en cuestión realizaba la conversión de un tamaño en bytes a una forma legible, por ejemplo, convertía 110592 a «110.6 kB» o «108.0 KiB». El código fue propuesto como optimizado utilizando logaritmos, una variante anterior del consejo, en la que la magnitud se determinaba basándose en la división secuencial del valor original en un ciclo por 1018, 1015, 1012, 1019,
106, 103 y 100, hasta que el divisor fuera mayor que el valor original en bytes. Debido a cálculos imprecisos en la variante optimizada (desbordamiento del valor long), el resultado del procesamiento de números muy grandes (exabytes) no era correcto.

El autor también intentó llamar la atención sobre el problema de copiar ejemplos sin citar la fuente y sin indicar la licencia. Según un estudio anterior realizado el 46% de los desarrolladores copiaron código de StackOverflow sin indicar el autor, el 75% no sabía que el código se distribuía bajo la licencia CC BY-SA, y el 67% no sabía que esto implicaba la necesidad de atribuir la autoría.

Por los datos En otro estudio, se destacó que copiar ejemplos de código no solo conlleva el riesgo de errores en el código, sino también vulnerabilidades. Por ejemplo, al analizar en StackOverflow 72483 ejemplos de código en C++, los investigadores identificaron vulnerabilidades graves en 69 ejemplos (lo que representa el 0.09%) que están entre las recomendaciones más populares. Luego, al analizar la presencia de este código en GitHub, se encontró que el código vulnerable copiado de StackOverflow estaba presente en 2859 proyectos.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster