nuttx/include
hujun5 90387a5b41 libc/misc: add fdsan module
FD (file descriptor) is widely used in system software development,
and almost all implementations of posix os (including nuttx) use FD as an index.
the value of fd needs to be allocated starting from the minimum available value of 3, and each process has a copy,
so the same fd value is very easy to reuse in the program.

In multi threaded or multi process environments without address isolation,
If the ownership, global variables, and competition relationships of fd are not properly handled,
there may be issues with fd duplication or accidental closure.
Further leading to the following issues, which are difficult to troubleshoot.

1. Security vulnerability: the fd we wrote is not the expected fd and will be accessed by hackers to obtain data
2. Program exceptions or crashes: write or read fd failures, and program logic errors
3. The structured file XML or database is damaged: the data format written to the database is not the expected format.

The implementation principle of fdsan is based on the implementation of Android
https://android.googlesource.com/platform/bionic/+/master/docs/fdsan.md

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2023-05-17 10:24:42 +08:00
..
android libc/misc: add fdsan module 2023-05-17 10:24:42 +08:00
arpa
crypto crypto:support crypto can handle streaming data 2023-01-17 01:19:38 +08:00
cxx libc: Implement quick_exit and at_quick_exit 2023-01-25 14:31:37 +02:00
net ethernet: add ETHERTYPE define 2023-05-04 19:38:57 +08:00
netinet in.h: add SOL_IPV6 protocol-level socket option IPV6_RECVHOPLIMIT 2023-05-10 18:00:15 +08:00
netpacket netlink: add RTM_NEWADDR, RTM_DELADDR and RTM_GETADDR 2023-04-22 01:35:18 +08:00
nuttx libc/misc: add fdsan module 2023-05-17 10:24:42 +08:00
ssp
sys boardctl: add BOARDIOC_SOFTRESETCAUSE_RESTORE_FACTORY_INQUIRY 2023-05-10 13:40:19 +08:00
.gitignore
aio.h fs: Undefine CONFIG_FS_LARGEFILE if compiler doesn't support long long 2023-03-02 09:37:58 +01:00
alloca.h
assert.h assert: Distinguish between assert and exception 2023-05-03 14:49:32 +08:00
byteswap.h
ctype.h
debug.h Indent the include statement by two spaces 2023-05-16 12:34:32 -03:00
dirent.h fs: Undefine CONFIG_FS_LARGEFILE if compiler doesn't support long long 2023-03-02 09:37:58 +01:00
dlfcn.h
dsp.h Typo fixes. 2023-02-17 11:17:11 -03:00
dspb16.h
elf32.h
elf64.h
elf.h
endian.h libc: Add sys/endian.h to improve the compatiblity with bionic libc 2023-01-15 12:26:15 -03:00
err.h include/err: Enforce c linkage for err and warn functions. 2023-05-01 12:48:55 +08:00
errno.h
execinfo.h execinfo.h: include nuttx/sched.h instead sched.h 2023-02-23 14:24:32 +08:00
fcntl.h include: Fix nxstyle errors 2023-05-04 02:07:01 +08:00
fixedmath.h
fnmatch.h
ftw.h fs: Undefine CONFIG_FS_LARGEFILE if compiler doesn't support long long 2023-03-02 09:37:58 +01:00
getopt.h
glob.h
grp.h libs/libc: License Clearance 2021-03-02 03:44:06 -08:00
hex2bin.h libc/hex2bin: Remove the unused declaration 2022-12-05 10:42:22 +01:00
iconv.h libc/locale: support iconv_open,iconv,iconv_close 2023-04-25 19:12:53 +01:00
ifaddrs.h
inttypes.h fs: Undefine CONFIG_FS_LARGEFILE if compiler doesn't support long long 2023-03-02 09:37:58 +01:00
iso646.h
langinfo.h
libgen.h
libintl.h compiler.h: Add _ between format|printf|syslog|scanf|strftime and like 2022-12-21 01:05:19 +02:00
limits.h include: Fix nxstyle errors 2023-05-04 02:07:01 +08:00
locale.h
lzf.h
malloc.h adjust the contents of memdump and meminfo 2023-01-17 16:48:30 +08:00
mqueue.h include: Fix nxstyle errors 2023-05-04 02:07:01 +08:00
netdb.h libc/netdb: add proto.c 2022-12-10 02:36:24 +08:00
nl_types.h
nxflat.h
obstack.h compiler.h: Add _ between format|printf|syslog|scanf|strftime and like 2022-12-21 01:05:19 +02:00
poll.h
pthread.h include: Fix nxstyle errors 2023-05-04 02:07:01 +08:00
pty.h drivers/serial: Always support c_oflag, c_iflag and c_lflag in termios 2023-03-19 14:54:59 -06:00
pwd.h libc/passwd: add pw_gecos field(userinfo) 2022-12-30 00:21:15 +08:00
resolv.h
sched.h include: Fix nxstyle errors 2023-05-04 02:07:01 +08:00
semaphore.h add holder for mutex 2023-01-31 12:08:05 +09:00
signal.h include: Fix nxstyle errors 2023-05-04 02:07:01 +08:00
spawn.h sched/spawn: Rename task_spawnattr_[get|set]stack[size|addr] to posix_spawnattr_[get|set]stack[size|addr] 2022-11-01 09:51:18 +09:00
stdbool.h
stddef.h
stdint.h
stdio.h libc: Add setbuffer to stdio. 2023-05-01 11:24:41 +03:00
stdlib.h syscall/libc: add more syscall/libc symbols into csv file 2023-03-31 21:56:50 +09:00
stdnoreturn.h
string.h libc/lib_rawmemchr.c:Add rawmemchr methon. 2023-02-24 04:06:04 +08:00
strings.h libc/lib_bzero:Add bzero prototype. 2023-02-25 08:07:07 +02:00
syscall.h syscall: export UP_WRAPSYM/UP_REALSYM macro 2022-12-30 22:13:34 +08:00
syslog.h syslog: add syslog option definition 2023-05-05 18:36:36 +08:00
termios.h
threads.h sched/getpid: replace syscall getpid/tid/ppid() to kernel version 2023-02-02 10:33:01 +08:00
time.h include: Fix nxstyle errors 2023-05-04 02:07:01 +08:00
unistd.h fs: Undefine CONFIG_FS_LARGEFILE if compiler doesn't support long long 2023-03-02 09:37:58 +01:00
utime.h
uuid.h
wchar.h
wctype.h