...
The use of the rand() function can result in predictable random numbers.
Rule | Severity | Likelihood | Detectable | RepairableRemediation Cost | Priority | Level |
|---|---|---|---|---|---|---|
MSC30-C | Medium | Unlikely | Yes | NoLow | P6P4 | L2L3 |
Automated Detection
Tool | Version | Checker | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Astrée |
| stdlib-use-rand | Fully checked | ||||||
| Axivion Bauhaus Suite |
| CertC-MSC30 | |||||||
| Clang |
| cert-msc30-c | Checked by clang-tidy | ||||||
| CodeSonar |
| BADFUNC.RANDOM.RAND | Use of rand | ||||||
| Compass/ROSE | |||||||||
| Coverity |
| DONTCALL | Implemented - weak support | ||||||
| Cppcheck Premium |
| premium-cert-msc30-c | |||||||
| CC2.MSC30 | Fully implemented | |||||||
| Helix QAC |
| C5022 C++5029 | |||||||
| Klocwork |
| CERT.MSC.STD_RAND_CALL | |||||||
| LDRA tool suite |
| 44 S | Enhanced enforcement | ||||||
| Parasoft C/C++test |
| CERT_C-MSC30-a | Do not use the rand() function for generating pseudorandom numbers | ||||||
| PC-lint Plus |
| 586 | Fully supported | ||||||
| Polyspace Bug Finder |
| CERT C: Rule MSC30-C | Checks for vulnerable pseudo-random number generator (rule fully covered) | ||||||
| RuleChecker |
| stdlib-use-rand | Fully checked |
...