A Static Analysis of Popular C Packages in Linux

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Ruohonen, Jukka, Saddiqa, Mubashrah, Sierszecki, Krzysztof
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866915652352081920
author Ruohonen, Jukka
Saddiqa, Mubashrah
Sierszecki, Krzysztof
author_facet Ruohonen, Jukka
Saddiqa, Mubashrah
Sierszecki, Krzysztof
contents Static analysis is a classical technique for improving software security and software quality in general. Fairly recently, a new static analyzer was implemented in the GNU Compiler Collection (GCC). The present paper uses the GCC's analyzer to empirically examine popular Linux packages. The dataset used is based on those packages in the Gentoo Linux distribution that are either written in C or contain C code. In total, 3,538 such packages are covered. According to the results, uninitialized variables and NULL pointer dereference issues are the most common problems according to the analyzer. Classical memory management issues are relatively rare. The warnings also follow a long-tailed probability distribution across the packages; a few packages are highly warning-prone, whereas no warnings are present for as much as 89% of the packages. Furthermore, the warnings do not vary across different application domains. With these results, the paper contributes to the domain of large-scale empirical research on software quality and security. In addition, a discussion is presented about practical implications of the results.
format Preprint
id arxiv_https___arxiv_org_abs_2409_18530
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle A Static Analysis of Popular C Packages in Linux
Ruohonen, Jukka
Saddiqa, Mubashrah
Sierszecki, Krzysztof
Software Engineering
Cryptography and Security
Static analysis is a classical technique for improving software security and software quality in general. Fairly recently, a new static analyzer was implemented in the GNU Compiler Collection (GCC). The present paper uses the GCC's analyzer to empirically examine popular Linux packages. The dataset used is based on those packages in the Gentoo Linux distribution that are either written in C or contain C code. In total, 3,538 such packages are covered. According to the results, uninitialized variables and NULL pointer dereference issues are the most common problems according to the analyzer. Classical memory management issues are relatively rare. The warnings also follow a long-tailed probability distribution across the packages; a few packages are highly warning-prone, whereas no warnings are present for as much as 89% of the packages. Furthermore, the warnings do not vary across different application domains. With these results, the paper contributes to the domain of large-scale empirical research on software quality and security. In addition, a discussion is presented about practical implications of the results.
title A Static Analysis of Popular C Packages in Linux
topic Software Engineering
Cryptography and Security
url https://arxiv.org/abs/2409.18530