Commit Graph

615 Commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen 12652fe557 Add alphasort_r(3). 2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen 71ae173b37 Add dscandir_r(3). 2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen 5dbd89d2aa Delay heap initialization until first heap expansion. 2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen e2526347bd Fix assertion failure panic message ending with a newline. 2014-11-20 17:24:43 +01:00
Jonas 'Sortie' Termansen 07fd50d5c6 Add wcwidth(3) and wcswidth(3). 2014-11-18 18:10:23 +01:00
Jonas 'Sortie' Termansen a24ecf4b83 Add getsockopt(2) and setsockopt(2). 2014-11-18 18:10:22 +01:00
Jonas 'Sortie' Termansen 708bcb4735 Add recvmsg(2) and sendmsg(2). 2014-11-18 16:27:19 +01:00
Jonas 'Sortie' Termansen c428ec4d83 Add fmemopen(3). 2014-11-17 18:47:44 +01:00
Jonas 'Sortie' Termansen d7c54161b2 Revise stdio implementation. 2014-10-19 17:13:49 +02:00
Jonas 'Sortie' Termansen f3eb87c3ee Improve qsort_r(3) run-time complexity using quicksort. 2014-09-25 18:20:00 +02:00
Jonas 'Sortie' Termansen a9cf3cc684 Add qsort_r(3). 2014-09-25 18:20:00 +02:00
Jonas 'Sortie' Termansen d6365e2da2 Add sysconf(_SC_GETPW_R_SIZE_MAX). 2014-09-25 18:20:00 +02:00
Jonas 'Sortie' Termansen b4de9e4399 Add sysconf(_SC_GETGR_R_SIZE_MAX). 2014-09-25 18:20:00 +02:00
Jonas 'Sortie' Termansen 234f186a7d Ensure system call indices are valid expressions in libc syscall stubs. 2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen 01f6606b74 Fix FILE being a macro. 2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen 0b085cbcf1 Fix strerror_r(3) range error case. 2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen 0b1af77ca0 Fix return value of wcscat(3). 2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen 9291dae58f Fix wcschr(3) family like strchr(3) was fixed. 2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen 86cd065aa7 Fix wmemmove(3) off-by-one bounds error. 2014-09-25 17:47:05 +02:00
Jonas 'Sortie' Termansen 94a7433cf0 Fix atoi(3) out-of-range cases. 2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen 87fee95949 Fix setenv(3) error case. 2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen 513c5f242d Fix strtol(3) quality. 2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen 228bf52b49 Fix fdopen setting FD_CLOEXEC wrongly. 2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen 783c1092ff Fix readdir() setting errno on success. 2014-09-25 17:27:54 +02:00
Jonas 'Sortie' Termansen ecccf4e1f7 Fix getdelim(2) leaking a freed pointer. 2014-09-25 17:27:53 +02:00
Jonas 'Sortie' Termansen 76577e69f1 Add execlpe(3). 2014-08-24 14:02:42 +02:00
Jonas 'Sortie' Termansen 771dc573ee Add attribute format to standard library headers. 2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen a298cdde18 Update libc/string/memmove.cpp to current coding conventions. 2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen 998208d4d3 Update libc/string/memcmp.cpp to current coding conventions. 2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen ebadcf2c02 Update libc/string/memset.cpp to current coding conventions. 2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen fcf412e54c Fix mktime(3) and timegm(3) not sanitizing the broken down time.
Found by musl's libc-test.
2014-08-23 21:47:05 +02:00
Jonas 'Sortie' Termansen b75678bcab Fix mkstemp(3) creating files with an insecure mode. 2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen 74fbbb3c78 Fix mkstemp(3) not rejecting bad templates.
Found by musl's libc-test.
2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen 40fd0fa3dc Fix the environment functions not rejecting the empty name.
Found by musl's libc-test.
2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen 0adfceef87 Fix strtol("0xz", &s, 16) handling.
Found by musl's libc-test.
2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen 88dd70991c Fix strchrnul(3) and strrchr(3) missing an unsigned char cast.
Found by musl's libc-test.
2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen d880a9a797 Fix memchr(3) missing an unsigned char cast. 2014-08-23 21:46:20 +02:00
Jonas 'Sortie' Termansen 1a99dc5048 Fix <timespec.h> including <stdbool.h> in C++. 2014-08-23 21:30:16 +02:00
Jonas 'Sortie' Termansen a8b8514272 Fix clearenv(3) leaving internal pointer alive after free.
This causes use-after-free and double-free bugs when other environment
functions are subsequently called.
2014-08-23 21:04:39 +02:00
Jonas 'Sortie' Termansen 5f9da2a651 Fix format string problems in error(3) calls. 2014-08-23 21:04:39 +02:00
Jonas 'Sortie' Termansen b0cbf9d0ea Fix strlcpy(3) and strlcat(3) being horribly broken.
Found by musl's libc-test.

This is just embarrassing.
2014-08-23 21:04:03 +02:00
Jonas 'Sortie' Termansen 395f7b29b4 Fix dregister not being thread safe. 2014-08-04 19:10:14 +02:00
Jonas 'Sortie' Termansen fdc41cac76 Fix wrong return type of init_stdio(). 2014-08-04 19:04:16 +02:00
Jonas 'Sortie' Termansen 30cd318c17 Implement signals.
Note: This is an incompatible ABI change.
2014-07-22 13:25:39 +02:00
Jonas 'Sortie' Termansen f1f272390b Add ESIGPENDING. 2014-07-20 15:09:16 +02:00
Jonas 'Sortie' Termansen 28d3b1245f Fix terminology in exec family. 2014-07-20 15:09:16 +02:00
Jonas 'Sortie' Termansen ff443c9f5e Thread-secure dregister(3) and dunregister(3). 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen a1ccba00f7 Thread-secure rand(3). 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen 3361620d83 Thread-secure setlocale(3). 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen c4e6888fd9 Thread-secure psignal(3). 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen 48edf99373 Thread-secure error(3). 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen 1ddd404ff9 Thread-secure stdio. 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen e1db06c1c9 Thread-secure exit(3). 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen a96aca09c1 Thread-secure user-space heap. 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen 0618b8a68f Thread secure errno(3). 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen f69b6c845c Add pthread_sigmask(3). 2014-07-08 17:41:52 +02:00
Jonas 'Sortie' Termansen c8a3a858b0 Add libpthread. 2014-07-08 17:41:50 +02:00
Jonas 'Sortie' Termansen b607900a00 Fix <dirent.h> not being C89 friendly. 2014-07-07 17:52:33 +02:00
Jonas 'Sortie' Termansen 1830ab64ee Fix memccpy(3) being terribly broken. 2014-06-27 16:17:47 +02:00
Jonas 'Sortie' Termansen 874baffd57 Fix wrongly named system call constants. 2014-06-27 15:49:55 +02:00
Jonas 'Sortie' Termansen 9f0e9f2fd4 Fix overlapping socket level constants. 2014-06-17 23:53:26 +02:00
Jonas 'Sortie' Termansen 4ea6aa710c Add exit_thread(2). 2014-06-12 00:05:40 +02:00
Jonas 'Sortie' Termansen 202cf40881 Fix libc/msr/wrmsr.cpp not containing its own file path. 2014-06-12 00:05:40 +02:00
Jonas 'Sortie' Termansen 8b3e94af38 Fix x86 longjmp(3) not restoring ebx. 2014-06-02 18:56:04 +02:00
Jonas 'Sortie' Termansen f332cf96d4 Add sched_yield(2). 2014-05-29 17:16:49 +02:00
Jonas 'Sortie' Termansen af23f7ad5e Add rdmsr(2) and wrmsr(2). 2014-05-29 17:14:30 +02:00
Jonas 'Sortie' Termansen 1f72c1637c Maintain fsbase and gsbase as per-thread registers.
Note: This is an incompatible ABI change.
2014-05-29 17:07:42 +02:00
Jonas 'Sortie' Termansen b30878e816 Fix libc files not including <stdalign.h> if using alignas(3). 2014-05-28 22:18:54 +02:00
Jonas 'Sortie' Termansen bfcd7768d2 Fix libc files not including <assert.h> if using static_assert(3). 2014-05-28 22:18:54 +02:00
Jonas 'Sortie' Termansen 534eb3ddd8 Fix libk being built with -mmmx, -msse and -msse2 on x86_64. 2014-05-28 17:42:19 +02:00
Jonas 'Sortie' Termansen 7db2ea81ab Fix warning about converting a signed value to an unsigned value. 2014-05-16 15:12:59 +02:00
Jonas 'Sortie' Termansen 73cea916d9 Fix suboptimal heap chunk spliting. 2014-05-16 14:48:27 +02:00
Jonas 'Sortie' Termansen 0f80611403 Fix C++ comments in <sys/types.h>. 2014-05-16 14:31:24 +02:00
Jonas 'Sortie' Termansen 4cc3bd4e92 Fix C++ comments in <fsmarshall-msg.h>. 2014-05-16 14:31:24 +02:00
Jonas 'Sortie' Termansen bcbc974a05 Fix usage of inline keyword in <timespec.h>. 2014-05-16 14:31:24 +02:00
Jonas 'Sortie' Termansen f2857047b0 Fix non-portable asm keyword usage in in system header. 2014-05-16 14:21:13 +02:00
Jonas 'Sortie' Termansen 57cddb5cc2 Fix libc files not including their associated header. 2014-05-16 14:21:13 +02:00
Jonas 'Sortie' Termansen 76036892c2 Fix missing parentheses in grp and pwd implementation. 2014-05-16 14:06:36 +02:00
Jonas 'Sortie' Termansen 8591bcef7b Fix getopt_long(3) not handling invalid options and long options properly. 2014-04-24 00:03:52 +02:00
Jonas 'Sortie' Termansen 01b8acbc90 Fix calloc not erroring on multiplication overflow. 2014-04-24 00:03:51 +02:00
Jonas 'Sortie' Termansen 159d8881ec Fix files relying on <unistd.h> including <ioleast.h>. 2014-04-06 00:19:05 +02:00
Jonas 'Sortie' Termansen 580418341c Fix getpagesize(2) visibility in <unistd.h>. 2014-04-05 17:04:48 +02:00
Jonas 'Sortie' Termansen 05b0713bfa Fix mktemp(3) prototype visibility in <stdlib.h>. 2014-04-05 17:02:49 +02:00
Jonas 'Sortie' Termansen 3c160977bf Fix wrong allocation failure check in dscandir_r(3). 2014-03-31 19:08:57 +02:00
Jonas 'Sortie' Termansen 8d41d3ceb0 Fix <string.h> including <strings.h>. 2014-03-31 19:08:57 +02:00
Jonas 'Sortie' Termansen 2161a0e0e3 Fix canonicalize_file_name_at(3) not handling file paths correctly. 2014-03-31 19:08:57 +02:00
Jonas 'Sortie' Termansen e8cfd5bf85 Handle NULL strings in vprintf_callback(3). 2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen 564f99b3ae Move O_ACCMODE into kernel headers. 2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen f6f5035706 Add tzset(3). 2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen 8c00a4145c Refactor kernel PAT, MTRR, and MSR usage. 2014-03-17 19:22:13 +01:00
Jonas 'Sortie' Termansen d50e8f1bce Document gethostid(3) and sethostid(3) as obsolete. 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen 4ee83c9466 Refuse to implement broken POSIX advisory file locks. 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen a935148f60 Add statvfs(2), fstatvfs(2) and fstatvfsat(2). 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen 2fe13d33c9 Add asprintf(3) and vasprintf(3). 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen 2fe3595feb Add getumask(2). 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen 9771f29138 Add syslog(3). 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen e677c455d8 Use getdomainname(2) in uname(3). 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen c6978d7d6e Add getdomainname(2). 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen 02c18f868f Fix vscanf_callback(3) not ungetcing the last character when stopping. 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen 1986bc2ba2 Add vscanf_callback(3). 2014-03-17 19:22:12 +01:00
Jonas 'Sortie' Termansen e91cde379a Rewrite getenv(3), setenv(3), unsetenv(3) and clearenv(3). 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen af9ea5df04 Add %m support to vprintf_callback(3). 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen 687096ec8a Add uname(3). 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen f34279cc60 Add ttyname_r(3). 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen a0a8ed61d8 Add pipe2(2). 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen eaf1618537 Add tcgetwincurpos(2). 2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen d5241349cc Move OFF_MIN and OFF_MAX to <sys/types.h>. 2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen 823d3a3e2f Add fsblkcnt_t and fsfilcnt_t. 2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen 0117c4fbc7 Improve ix86 and x86_64 data types ABI.
Increase gid_t to an unsigned 64-bit integer.
Increase id_t to an unsigned 64-bit integer.
Increase pid_t to a signed 64-bit integer.
Increase time_t to a signed 64-bit integer.
Increase uid_t to an unsigned 64-bit integer.

Note: This is an incompatible ABI change.
2014-03-17 19:22:10 +01:00
Jonas 'Sortie' Termansen 1b3f4b36d8 Fix strtol(3) handling negative numbers incorrectly. 2014-03-17 17:00:00 +01:00
Jonas 'Sortie' Termansen 00a3579940 Fix basename(3) and dirname(3) returning incorrect strings. 2014-03-17 16:59:59 +01:00
Jonas 'Sortie' Termansen 2e855f4095 Fix buffer overflow in execvpe(3). 2014-03-17 16:59:59 +01:00
Jonas 'Sortie' Termansen fc713baba3 Rename libc-sortix to libk. 2014-03-01 14:37:42 +01:00
Jonas 'Sortie' Termansen 512c9d3f08 Improve wchar declarations in <wchar.h>, <wctype.h> and <stdint.h>. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen 28f49e53bf Add C11 static_assert to <assert.h>. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen f13074afd1 Improve basename(3) and dirname(3). 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen d39437966d Split libc/wctype/wctype.cpp into multiple files. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen ba8557075c Split libc/ctype/ctype.cpp into multiple files. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen df666103b3 Update libc/stdlib/rand.cpp to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen 9cd3cdf79c Update libc/locale/setlocale.cpp to current coding conventions. 2014-03-01 14:37:41 +01:00
Jonas 'Sortie' Termansen 71f9f882d1 Fix readdir(3) not preserving errno in case of end-of-directory condition. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen da933464e5 Add d_namlen, d_dev, and d_type to struct dirent. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen 5dd70aa4ff Split libc/dirent/fddir-sortix.cpp into multiple files. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen ddce6045e0 Split libc/dirent/dir.cpp into multiple files. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen d7467e98be Move the declaration of the DIR structure into its own header. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen 6788f0096e Preprocess assembly files with the C preprocessor. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen 8a49c47742 Include <stdarg.h> in <wchar.h>. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen b08455c4d3 Remove mxmpp. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen 98a87fa1e5 Rename Sortix kernel directory to kernel. 2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen 18d2695439 Add libdl and librt to libc. 2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen 4c1d36fd11 Fix setuid(2) calling sys_getuid rather than sys_setuid. 2014-02-23 14:47:22 +01:00
Jonas 'Sortie' Termansen 478db91c3e Fix setgid(2) calling sys_getgid rather than sys_setgid. 2014-02-23 14:47:22 +01:00
Jonas 'Sortie' Termansen aa9f642df2 Fix seteuid(2) calling sys_geteuid rather than sys_seteuid. 2014-02-23 14:47:22 +01:00
Jonas 'Sortie' Termansen 3163f4600d Fix setegid(2) calling sys_getegid rather than sys_setegid. 2014-02-23 14:47:21 +01:00
Jonas 'Sortie' Termansen 142b2c66c4 Fix symlinkat(2) calling sys_linkat rather than sys_symlinkat. 2014-02-23 14:47:21 +01:00
Jonas 'Sortie' Termansen 4227d97f55 Fix send(2) calling sys_recv rather than sys_send. 2014-02-23 14:47:21 +01:00
Jonas 'Sortie' Termansen 31c310036c Fix lseek changing errno in fdio_install_fd when no real error occurs. 2014-02-16 12:38:04 +01:00
Jonas 'Sortie' Termansen fd5b40de26 Fix wrong return types in towlower(3) and towupper(3) implementations. 2014-02-13 15:49:48 +01:00
Jonas 'Sortie' Termansen 061eddff91 Silence uninitialized variable warning in wcrtomb(3). 2014-02-06 00:15:03 +01:00
Jonas 'Sortie' Termansen 140dfe22fc Fix memory leak in getlogin_r(3). 2014-02-06 00:15:03 +01:00
Jonas 'Sortie' Termansen 5c58b65546 Fix range check in sigismember(3). 2014-02-02 23:14:02 +01:00
Jonas 'Sortie' Termansen 6af85a5dd8 Fix negated return value in sigisemptyset(3). 2014-02-02 23:14:02 +01:00
Jonas 'Sortie' Termansen b5d80ee5d1 Fix %T in strftime(3) being incorrectly implemented. 2014-01-19 22:47:52 +01:00
Jonas 'Sortie' Termansen 187cdf03dc Fix accept4 ignoring addrlen parameter as input. 2014-01-19 00:32:11 +01:00
Jonas 'Sortie' Termansen 6473d72621 Fix bugs in vprintf_callback(3) and improve %c and %s support. 2014-01-18 16:30:56 +01:00
Jonas 'Sortie' Termansen 021256ad8e Fix struct kernel_dirent::d_namlen being called d_namelen. 2014-01-18 16:30:56 +01:00
Jonas 'Sortie' Termansen bfc8570bb8 Fix libc function implementations without extern "C" linkage. 2014-01-18 16:30:56 +01:00
Jonas 'Sortie' Termansen 7c3df4e4f7 Fix <FILE.h> not being wrapped in __BEGIN_DECLS and __END_DECLS. 2014-01-18 16:30:55 +01:00
Jonas 'Sortie' Termansen a4220d5b5f Fix incorrect usage of __is_sortix_foo macros in preprocessor conditionals.
These macros might not be defined, in which case this usage would have
generated warnings had they not been in system headers.
2014-01-18 16:30:55 +01:00
Jonas 'Sortie' Termansen 7bc8ccd46f Fix unportable gid_t and uid_t parsing in fgetpwent_r(3). 2013-12-30 20:46:22 +01:00