MISRA.STDLIB.ATOIUse of atof, atoi or atol from library stdlib.h.
MISRA C 2012 Rule 21.7: The atof, atoi, atol and atoll functions of <stdlib.h> shall not be usedC90 [Undefined 90], C99 [Undefined 113] Category: Required Analysis: Decidable, Single Translation Unit Applies to: C90, C99 AmplificationThe identifiers atof, atoi, atol and, for C99 only atoll, shall not be used and no macro with one of these names shall be expanded. RationaleThese functions have undefined behaviour associated with them when the string cannot be converted. MISRA-C 2004 Rule 20.10 (required): The library functions ''atof, atoi'' and ''atol'' from library ''<stdlib.h>'' shall not be usedUse of 'atof', 'atoi' or 'atol' from library stdlib.h. [Undefined 90] These functions have undefined behaviour associated with them when the string cannot be converted. MISRA-C++ 2008 Rule 18-0-2 (required): The library functions ''atof, atoi'' and ''atol'' from library ''<cstdlib>'' shall not be used.This rule is also covered by MISRA.INCL.UNSAFE. RationaleThese functions have undefined behaviour associated with them when the string cannot be converted. Example#include <cstdlib> int32_t f ( const char_t * numstr ) { return atoi ( numstr ); // Non-compliant } |