walnux/libs/libc/misc
George Poulios c4541a4d4c libc/idr: Remove nodes from RB trees during destroy
idr_destroy() would loop over the removed and alloced
RB tree nodes freeing them but not removing them from
the trees. From the perspective of the RB tree those
nodes would remain valid, while in fact, they were free
memory, potentially reallocated for other purposes, or
otherwise overwritten by the allocator with metadata.
This would cause (seemingly random) memory corruption
crashes triggered by the RB tree code trying to access
link fields from the free'd nodes.

Fix that by removing the nodes before freeing them.

Signed-off-by: George Poulios <gpoulios@census-labs.com>
2025-07-12 14:24:32 +08:00
..
CMakeLists.txt libs/libc/crc16: Separate implementation of crc16xmodem from crc16 2025-04-10 16:47:28 +08:00
Kconfig libc/misc: fix typo error about misc/Kconfig 2025-05-14 15:02:17 +08:00
lib_backtrace.c libs: unify Private Types banners 2025-05-28 10:17:15 +08:00
lib_bitmap.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
lib_circbuf.c circbuf: fix circbuf_get_read/writeptr return *size = 0 when circbuf full 2024-10-16 16:59:51 +08:00
lib_crc8.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_crc8ccitt.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_crc8rohc.c libc: add CRC-8-ROHC support 2024-10-13 03:09:26 +08:00
lib_crc8table.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_crc16.c libs/libc/crc16: Separate implementation of crc16xmodem from crc16 2025-04-10 16:47:28 +08:00
lib_crc16ccitt.c libs/libc/crc16: move crc16 table to rodata 2025-04-07 09:02:01 +08:00
lib_crc16ibm.c libs/libc/crc16: add support of CRC-16/ANSI(aka CRC-16/IBM) 2025-04-07 12:10:05 +08:00
lib_crc16xmodem.c libs/libc/crc16: Separate implementation of crc16xmodem from crc16 2025-04-10 16:47:28 +08:00
lib_crc32.c libc/arm: optimize crc32/crc32c for arm 2025-04-04 09:51:50 -03:00
lib_crc64.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_cxx_initialize.c userspace: Exclude nuttx/arch.h 2024-11-01 16:59:37 +08:00
lib_debug.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_dumpbuffer.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_dumpvbuffer.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_envpath.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
lib_err.c lib_libvsprintf.c:add option in Kconfig to control "%p*" special format specifier. 2024-10-15 15:33:13 +08:00
lib_fchmodat.c Use lib_get_pathbuffer instead of stack variables 2024-11-12 17:21:42 +08:00
lib_fdcheck.c libc/fdcheck: cause system to panic when a double close occurs 2025-05-14 15:02:17 +08:00
lib_fdsan.c arch_atomic: only support atomic_xx and atomic64_xx function 2024-12-04 14:03:14 +01:00
lib_fnmatch.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_fstatat.c Use lib_get_pathbuffer instead of stack variables 2024-11-12 17:21:42 +08:00
lib_ftok.c Use lib_get_pathbuffer instead of stack variables 2024-11-12 17:21:42 +08:00
lib_getfullpath.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_getnprocs.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_getrandom.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_glob.c libs: unify Private Types banners 2025-05-28 10:17:15 +08:00
lib_idr.c libc/idr: Remove nodes from RB trees during destroy 2025-07-12 14:24:32 +08:00
lib_impure.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_instrument.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
lib_kbddecode.c stream_getc: use lib_stream_eof instead of EOF 2024-11-26 10:25:36 +08:00
lib_kbdencode.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_mallopt.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_memfd.c Use lib_get_pathbuffer instead of stack variables 2024-11-12 17:21:42 +08:00
lib_mkdirat.c Use lib_get_pathbuffer instead of stack variables 2024-11-12 17:21:42 +08:00
lib_mkfifo.c Use lib_get_pathbuffer instead of stack variables 2024-11-12 17:21:42 +08:00
lib_mknod.c Use lib_get_pathbuffer instead of stack variables 2024-11-12 17:21:42 +08:00
lib_mutex.c Clean up the nxmutex library 2025-05-08 16:00:05 +08:00
lib_ncompress.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
lib_openat.c Use lib_get_pathbuffer instead of stack variables 2024-11-12 17:21:42 +08:00
lib_slcddecode.c stream_getc: use lib_stream_eof instead of EOF 2024-11-26 10:25:36 +08:00
lib_slcdencode.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_tea_decrypt.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_tea_encrypt.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_tempbuffer.c libs/lib_tempbuffer: set errno when fails 2025-01-17 08:16:14 +08:00
lib_uadd32x64.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_uadd64.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_umask.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_umul32.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_umul32x64.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_umul64.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_usub64.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_usub64x32.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_utimensat.c Use lib_get_pathbuffer instead of stack variables 2024-11-12 17:21:42 +08:00
lib_utsname.c libc/utsname: Only store version in RAM, use rodata for all others 2024-10-12 15:36:28 +08:00
lib_xorshift128.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
Make.defs libs/libc/crc16: Separate implementation of crc16xmodem from crc16 2025-04-10 16:47:28 +08:00