L'exemple de code Java le plus populaire sur StackOverflow contenait une erreur

Le plus populaire exemple de code Java, publié sur StackOverflow, s’est retrouvé avec une erreur entraînant une sortie incorrecte sous certaines conditions. Le code en question a été publié en 2010 et a accumulé plus d'un millier de recommandations, et a été copié dans de nombreux projets, apparaissant dans les dépôts sur GitHub environ 7 000 fois. Il est intéressant de noter que l'erreur n'a pas été trouvée par les utilisateurs copiant ce code dans leurs projets, mais par l'auteur initial du conseil.

Le code discuté effectuait la conversion de la taille en octets en un format lisible, par exemple 110592 était converti en « 110,6 Ko » ou « 108,0 KiB ». Le code était proposé comme optimisé à l'aide de logarithmes dans une version antérieure de conseil où la valeur était déterminée par division successive de la valeur d'origine dans une boucle par 1018, 1015, 1012, 1019,
106, 103 et 100, jusqu'à ce que le diviseur soit supérieur à la valeur d'origine en octets. À cause de calculs imprécis dans la version optimisée (dépassement de valeur long), le résultat du traitement de très grands nombres (exaoctet) n'était pas correct.

L'auteur du conseil a également tenté d'attirer l'attention sur le problème de la copie d'exemples sans mentionner la source et sans préciser la licence. Selon une recherche antérieure réalisée, 46 % des développeurs ont copié le code de StackOverflow sans mentionner l'auteur, 75 % ne savaient pas que le code était distribué sous la licence CC BY-SA, et 67 % ne savaient pas que cela impliquait la nécessité de mentionner l'auteur.

Selon les données D'une autre étude, la copie d'exemples de code est associée non seulement au risque d'erreurs dans le code, mais aussi à des vulnérabilités. Par exemple, en analysant 72 483 exemples de code C++ sur StackOverflow, les chercheurs ont identifié des vulnérabilités graves dans 69 exemples (ce qui représente 0,09 %), figurant dans la liste des recommandations les plus populaires. En analysant ensuite la présence de ce code sur GitHub, il a été révélé que le code vulnérable copié de StackOverflow est présent dans 2 859 projets.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster