Commit 140c8311 authored by Soby Mathew's avatar Soby Mathew
Browse files

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: default avatarSoby Mathew <soby.mathew@arm.com>
parent b73d296d
...@@ -263,6 +263,41 @@ a warning for this. ...@@ -263,6 +263,41 @@ a warning for this.
Existing typedefs will be retained for compatibility. 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 Error handling and robustness
----------------------------- -----------------------------
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment