diff options
author | Soby Mathew <soby.mathew@arm.com> | 2019-06-20 12:46:11 +0100 |
---|---|---|
committer | Soby Mathew <soby.mathew@arm.com> | 2019-07-01 14:16:26 +0100 |
commit | 140c8311f7cdf954d12cc18c183a37a717916a4d (patch) | |
tree | b9a7a85ba7f51dc0caeb7e4ecdc12c2fddfaf8b4 /docs | |
parent | b73d296d747663ecd31caf30ddcebf4a99f39abf (diff) |
docs: Add the list of banned/use with caution APIs
Credit to sam.ellis@arm.com for the input to create the list.
Change-Id: Id70a8eddc5f2490811bebb278482c61950f10cce
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/process/coding-guidelines.rst | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/docs/process/coding-guidelines.rst b/docs/process/coding-guidelines.rst index d524d733..093d66be 100644 --- a/docs/process/coding-guidelines.rst +++ b/docs/process/coding-guidelines.rst @@ -263,6 +263,41 @@ a warning for this. Existing typedefs will be retained for compatibility. +Libc functions that are banned or to be used with caution +--------------------------------------------------------- + +Below is a list of functions that present security risks and either must not be +used (Banned) or are discouraged from use and must be used with care (Caution). + ++------------------------+-----------+--------------------------------------+ +| libc function | Status | Comments | ++========================+===========+======================================+ +| ``strcpy, wcscpy`` | Banned | use strlcpy instead | +| ``strncpy`` | | | ++------------------------+-----------+--------------------------------------+ +| ``strcat, wcscat`` | Banned | use strlcat instead | +| ``strncat`` | | | ++----------------------- +-----------+--------------------------------------+ +| ``sprintf, vsprintf`` | Banned | use snprintf, vsnprintf | +| | | instead | ++---------------------- -+-----------+--------------------------------------+ +| ``snprintf`` | Caution | ensure result fits in buffer | +| | | i.e : snprintf(buf,size...) < size | ++------------------------+-----------+--------------------------------------+ +| ``vsnprintf`` | Caution | inspect va_list match types | +| | | specified in format string | ++------------------------+-----------+--------------------------------------+ +| ``strtok`` | Banned | use strtok_r or strsep instead | ++------------------------+-----------+--------------------------------------+ +| ``strtok_r, strsep`` | Caution | inspect for terminated input buffer | ++------------------------+-----------+--------------------------------------+ +| ``ato*`` | Banned | use equivalent strto* functions | ++------------------------+-----------+--------------------------------------+ +| ``*toa`` | Banned | Use snprintf instead | ++------------------------+-----------+--------------------------------------+ + +The `libc` component in the codebase will not add support for the banned APIs. + Error handling and robustness ----------------------------- |