Xiang Xiao
7aad7eebff
libc: Change errno to set_errno and get_errno
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-10-29 17:16:09 +02:00
chenrun1
4ce205cf08
lib_iconv.c:Fix possible out-of-bounds reads
...
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2023-09-19 09:34:48 +08:00
chao an
6ee9ec7656
build: add initial cmake build system
...
1. Update all CMakeLists.txt to adapt to new layout
2. Fix cmake build break
3. Update all new file license
4. Fully compatible with current compilation environment(use configure.sh or cmake as you choose)
------------------
How to test
From within nuttx/. Configure:
cmake -B build -DBOARD_CONFIG=sim/nsh -GNinja
cmake -B build -DBOARD_CONFIG=sim:nsh -GNinja
cmake -B build -DBOARD_CONFIG=sabre-6quad/smp -GNinja
cmake -B build -DBOARD_CONFIG=lm3s6965-ek/qemu-flat -GNinja
(or full path in custom board) :
cmake -B build -DBOARD_CONFIG=$PWD/boards/sim/sim/sim/configs/nsh -GNinja
This uses ninja generator (install with sudo apt install ninja-build). To build:
$ cmake --build build
menuconfig:
$ cmake --build build -t menuconfig
--------------------------
2. cmake/build: reformat the cmake style by cmake-format
https://github.com/cheshirekow/cmake_format
$ pip install cmakelang
$ for i in `find -name CMakeLists.txt`;do cmake-format $i -o $i;done
$ for i in `find -name *\.cmake`;do cmake-format $i -o $i;done
Co-authored-by: Matias N <matias@protobits.dev>
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-08 13:50:48 +08:00
guoshichao
4af8c58b93
libs/libc/locale/langinfo: implement the nl_langinfo function
...
1. the nl_langinfo can help to pass the
ltp/open_posix_testsuite/strftime testcases
2. the implementation are referred to https://pubs.opengroup.org/onlinepubs/9699919799/functions/nl_langinfo.html
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2023-07-02 13:57:36 +08:00
Junbo Zheng
0d3252ba06
libs/libc: fix locale/lib_iconv.c:538:23: warning: dereference of NULL ‘scd’ [CWE-690] [-Wanalyzer-null-dereference] by -fanalyzer
...
CC: signal/sig_queue.c locale/lib_iconv.c: In function ‘iconv’:
locale/lib_iconv.c:538:23: warning: dereference of NULL ‘scd’ [CWE-690] [-Wanalyzer-null-dereference]
538 | if (!scd->state)
| ~~~^~~~~~~
‘iconv’: events 1-5
|
| 413 | x = 0;
| | ~~^~~
| | |
| | (1) ‘scd’ is NULL
| 414 | scd = NULL;
| 415 | if (((size_t)cd & 1) == 0)
| | ~
| | |
| | (2) following ‘false’ branch...
|......
| 421 | to = extract_to(cd);
| | ~~~~~~~~~~~~~~
| | |
| | (3) ...to here
|......
| 428 | if (in == NULL || *in == NULL || *inb == 0)
| | ~ ~~~
| | | |
| | | (5) ...to here
| | (4) following ‘false’ branch (when ‘in’ is non-NULL)...
|
‘iconv’: events 6-8
|
| 428 | if (in == NULL || *in == NULL || *inb == 0)
| | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
| | | | |
| | | | (7) ...to here
| | | (8) following ‘false’ branch...
| | (6) following ‘false’ branch...
|
‘iconv’: event 9
|
|cc1:
| (9): ...to here
|
‘iconv’: events 10-14
|
| 433 | for (; *inb; *in += l, *inb -= l)
| | ^~~
| | |
| | (10) following ‘true’ branch...
| 434 | {
| 435 | c = *(FAR unsigned char *)*in;
| | ~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (11) ...to here
|......
| 438 | switch (type)
| | ~~~~~~
| | |
| | (12) following ‘case 200:’ branch...
|......
| 529 | case UCS2:
| | ~~~~
| | |
| | (13) ...to here
|......
| 538 | if (!scd->state)
| | ~~~~~~~~~~
| | |
| | (14) dereference of NULL ‘scd’
|
locale/lib_iconv.c:565:23: warning: dereference of NULL ‘scd’ [CWE-690] [-Wanalyzer-null-dereference]
565 | if (!scd->state)
| ~~~^~~~~~~
‘iconv’: events 1-5
|
| 413 | x = 0;
| | ~~^~~
| | |
| | (1) ‘scd’ is NULL
| 414 | scd = NULL;
| 415 | if (((size_t)cd & 1) == 0)
| | ~
| | |
| | (2) following ‘false’ branch...
|......
| 421 | to = extract_to(cd);
| | ~~~~~~~~~~~~~~
| | |
| | (3) ...to here
|......
| 428 | if (in == NULL || *in == NULL || *inb == 0)
| | ~ ~~~
| | | |
| | | (5) ...to here
| | (4) following ‘false’ branch (when ‘in’ is non-NULL)...
|
‘iconv’: events 6-8
|
| 428 | if (in == NULL || *in == NULL || *inb == 0)
| | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
| | | | |
| | | | (7) ...to here
| | | (8) following ‘false’ branch...
| | (6) following ‘false’ branch...
|
‘iconv’: event 9
|
|cc1:
| (9): ...to here
|
‘iconv’: events 10-14
|
| 433 | for (; *inb; *in += l, *inb -= l)
| | ^~~
| | |
| | (10) following ‘true’ branch...
| 434 | {
| 435 | c = *(FAR unsigned char *)*in;
| | ~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (11) ...to here
|......
| 438 | switch (type)
| | ~~~~~~
| | |
| | (12) following ‘case 202:’ branch...
|......
| 557 | case UTF_32:
| | ~~~~
| | |
| | (13) ...to here
|......
| 565 | if (!scd->state)
| | ~~~~~~~~~~
| | |
| | (14) dereference of NULL ‘scd’
|
Signed-off-by: Junbo Zheng <zhengjunbo1@xiaomi.com>
2023-06-30 16:11:10 +08:00
chao an
fb9b41221d
semantic/parser: fix compile warning found by sparse
...
Reference:
https://linux.die.net/man/1/sparse
Signed-off-by: chao an <anchao@xiaomi.com>
2023-05-30 23:00:00 +08:00
Petro Karashchenko
c70b7f6b3d
nuttx: improve C89 compatibility in common code
...
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2023-05-19 02:40:38 +08:00
dongjiuzhu1
68d40d4a98
libc/locale: support iconv_open,iconv,iconv_close
...
Refs to:https://github.com/bminor/musl
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2023-04-25 19:12:53 +01:00
anjiahao
d1d46335df
Replace nxsem API when used as a lock with nxmutex API
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-17 15:59:46 +09:00
Petro Karashchenko
98ba65c422
c89: get rid of designated initializers in common code
...
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-03-28 13:39:27 +08:00
Xiang Xiao
01517b2ebe
libc/gettext: Support the plural format
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-03-08 15:57:25 -03:00
Xu Xingliang
f38783f4b5
libc/locale: check if mmap failed before proceeding.
...
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
2022-03-08 15:57:25 -03:00
Petro Karashchenko
12b3491208
libc/textdomain: Fix error behaviour
...
- textdomain should set errno to ENOMEM in case if it is not
possible to store domainname
- fix buffer overflow in textdomain if domainname is a string
of NAME_MAX length
- improve textdomain error detection in case if domainname
points to non null terminated buffer
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2021-12-14 05:54:34 -06:00
Xiang Xiao
db6dd623c6
libc/gettextdomain: Fix the typo error
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-12-13 11:07:27 -06:00
Neo Xu
5941532fb5
libc/gettext: Initialize path field when creating mofile struct.
...
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
2021-09-01 14:35:24 -03:00
Xiang Xiao
00e0afb864
libc/gettext: Change g_domain to array
...
otherwise textdomain will deference NULL pointer in the default case
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-08-05 09:41:30 -03:00
Xiang Xiao
c6c1ec81e0
Fix variable 'catd' is used uninitialized whenever 'if' condition is false
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-08-03 12:14:07 -03:00
Xiang Xiao
c597721633
libc: Implement gettext function
...
https://www.man7.org/linux/man-pages/man3/dcgettext.3.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-08-03 12:14:07 -03:00
Xiang Xiao
98de773081
libc: Support message catalog function
...
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/nl_types.h.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-08-02 08:24:59 -03:00
Xiang Xiao
0e2cbe9a79
libc: Add the empty nl_langinfo implementation
...
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/langinfo.h.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-07-31 15:35:47 -03:00
Alin Jerpelea
d6b50a1d3f
libs: nxstyle fixes
...
nxstyle fixes to pass the CI checks
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-03 18:52:53 -08:00
Alin Jerpelea
b5d4a01821
libs: Author Gregory Nutt: update licenses to Apache
...
Gregory Nutt has submitted the SGA and we can migrate the licenses
to Apache.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-03 18:52:53 -08:00
Xiang Xiao
5fbf52788f
libc/locale: Add the mininal support for locale_t operation
...
include duplocale, freelocale, newlocale and uselocale
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I9912003847dec660ae5c62836d4d56ebe0718869
2020-06-15 07:20:19 -06:00
Xiang Xiao
fb31d38394
libs/libc/locale/lib_localeconv.c and lib_setlocale.c: Make localeconv() and setlocale() more compliance with spec:
...
1. localeconvi() should return C locale not NULL by default
2. setlocale() should return "C" if new locale equals NULL
2019-11-18 11:41:32 -06:00
Joao Matos
251009de3a
libs/libc/locale/lib_setlocale.c: Improved error handling in setlocale().
2019-04-04 10:38:57 -06:00
Gregory Nutt
cf99fb40c9
This commit moves all of the libraries under a common directory called libs/. This most certainly break libcxx and uClibc++ for now.
...
Squashed commit of the following:
libs/libxx: Fix some confusing in naming. If the directory is called libxx, then the library must be libxx.a (unless perhaps LIBCXX is selected).
libs/: Fix paths in moved library directories.
libs: Brute force move of libc, libnx, and libxx to libs. Cannot yet build it in that configuration.
2018-05-29 13:21:26 -06:00