Das beliebteste Beispiel von Java-Code auf StackOverflow stellte sich als fehlerhaft heraus

Das beliebteste Beispiel für Java-Code, veröffentlicht auf StackOverflow, war betroffen mit einem Fehler, der unter bestimmten Bedingungen zu einem falschen Ergebnis führt. Der betreffende Code wurde 2010 veröffentlicht und hat über tausend Empfehlungen gesammelt und wurde in viele Projekte kopiert und taucht in GitHub-Repositories etwa 7000 Mal auf. Bemerkenswert ist, dass der Fehler nicht von den Nutzern gefunden wurde, die diesen Code in ihre Projekte kopierten, sondern vom ursprünglichen Autor des Ratschlags.

Der betreffende Code wandelt die Größe in Bytes in ein lesbares Format um, zum Beispiel wandelte er 110592 in "110,6 kB" oder "108,0 KiB" um. Der Code wurde als optimierte Variante des zuvor vorgeschlagenen Ratschlags mittels Logarithmen angeboten, bei der der Wert basierend auf der fortlaufenden Division des Ausgangswertes in einer Schleife durch 1018, 1015, 1012, 1019,
106, 103 und 100 bestimmt wurde, bis der Teiler größer als der Ausgangswert in Bytes ist. Aufgrund ungenauer Berechnungen im optimierten Code (Überlauf des long-Wertes) stimmte das Ergebnis bei der Verarbeitung sehr großer Zahlen (Exabyte) nicht mit der Realität überein.

Der Autor des Ratschlags versuchte auch, auf das Problem des Kopierens von Beispielen ohne Quellenverweis und ohne Lizenzhinweis hinzuweisen. Laut einer früheren durchgeführten Untersuchung haben 46% der Entwickler Code von StackOverflow ohne Angabe des Autors kopiert, 75% wussten nicht, dass der Code unter der Lizenz CC BY-SA verbreitet wird, und 67% wussten nicht, was dies bedeutet, nämlich dass eine Anerkennung des Autors erforderlich ist.

Nach Angaben In einer anderen Untersuchung ist das Kopieren von Codebeispielen nicht nur mit dem Risiko von Fehlern im Code verbunden, sondern auch mit Sicherheitsanfälligkeiten. So haben Forscher bei der Analyse von 72483 Beispielen für C++-Code auf StackOverflow schwerwiegende Sicherheitsanfälligkeiten in 69 Beispielen (was 0,09% entspricht) festgestellt, die zu den beliebtesten Empfehlungen gehören. Bei der anschließenden Analyse dieses Codes auf GitHub stellte sich heraus, dass der von StackOverflow kopierte anfällige Code in 2859 Projekten vorhanden ist.

Quelle: opennet.ru

60GB SSD 8Gb DDR4