Commit Graph

615 Commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen 3d091f39bf Harden strcpy calls. 2014-11-30 19:53:42 +01:00
Jonas 'Sortie' Termansen 8fef8f7bb1 Reuse the argv[0] string in program_invocation_name(3). 2014-11-30 19:31:40 +01:00
Jonas 'Sortie' Termansen 392472af5c Add semaphores API. 2014-11-30 19:31:40 +01:00
Jonas 'Sortie' Termansen fac70d5119 Rename libc/aux to libc/c++. 2014-11-28 15:30:39 +01:00
Jonas 'Sortie' Termansen d8201c007a Add sysconf(_SC_MONOTONIC_CLOCK). 2014-11-28 15:30:39 +01:00
Jonas 'Sortie' Termansen edb19f2394 Add arc4random(3). 2014-11-28 13:35:51 +01:00
Jonas 'Sortie' Termansen e460be7a72 Add getentropy(2). 2014-11-28 13:35:51 +01:00
Jonas 'Sortie' Termansen 690b5ada52 Fix _start not following the ABI. 2014-11-28 00:17:24 +01:00
Jonas 'Sortie' Termansen 5c702ed44b Add stresep(3). 2014-11-27 21:01:13 +01:00
Jonas 'Sortie' Termansen 58a1383723 Add strsep(3). 2014-11-27 21:01:13 +01:00
Jonas 'Sortie' Termansen 577f2f700b Add shutdown(2). 2014-11-27 01:39:53 +01:00
Jonas 'Sortie' Termansen a00d085b81 Implement recvfrom(2) and sendto(2). 2014-11-27 01:39:12 +01:00
Jonas 'Sortie' Termansen a8a8154adc Add getpeername(2) and getsockname(2). 2014-11-27 01:39:11 +01:00
Jonas 'Sortie' Termansen 3760420fbb Add fpathconf(2). 2014-11-27 01:36:52 +01:00
Jonas 'Sortie' Termansen ad8d025c32 Rename <sortix/syscallnum.h> to <sortix/syscall.h>. 2014-11-27 01:18:58 +01:00
Jonas 'Sortie' Termansen 53aa659743 Add ESTALE. 2014-11-27 00:20:54 +01:00
Jonas 'Sortie' Termansen 73312b201b Improve memset(3) performance. 2014-11-27 00:20:53 +01:00
Jonas 'Sortie' Termansen 95fcb94648 Add explicit_bzero(3). 2014-11-27 00:20:53 +01:00
Jonas 'Sortie' Termansen 4ee15987fa Add timingsafe_memcmp(3). 2014-11-27 00:20:53 +01:00
Jonas 'Sortie' Termansen 6dfd2fb6fa Add <netinet/tcp.h>. 2014-11-27 00:20:53 +01:00
Jonas 'Sortie' Termansen d7290e1fad Add memrchr(3). 2014-11-27 00:10:13 +01:00
Jonas 'Sortie' Termansen 5e295b8d94 Honor feature macros in <arpa/inet.h>. 2014-11-26 23:34:14 +01:00
Jonas 'Sortie' Termansen bb84370c34 Add type limits and print/scan specifiers to <sys/types.h>. 2014-11-26 23:34:14 +01:00
Jonas 'Sortie' Termansen ac7124e1e6 Add wcslcat(3) and wcslcpy(3). 2014-11-26 22:49:01 +01:00
Jonas 'Sortie' Termansen 429f823f1f Add wcsnlen(3). 2014-11-26 22:49:01 +01:00
Jonas 'Sortie' Termansen e4dd7c0d5a Add wcsncasecmp(3). 2014-11-26 22:49:01 +01:00
Jonas 'Sortie' Termansen 01b7754c29 Add wcsdup(3). 2014-11-26 22:49:01 +01:00
Jonas 'Sortie' Termansen 8ed26bb26e Add wcscasecmp(3). 2014-11-26 22:49:00 +01:00
Jonas 'Sortie' Termansen 34935845b4 Add wcpncpy(3). 2014-11-26 22:49:00 +01:00
Jonas 'Sortie' Termansen c9b17d5490 Add wcpcpy(3). 2014-11-26 22:49:00 +01:00
Jonas 'Sortie' Termansen 9ca343c5e4 Add wcsftime(3). 2014-11-26 22:49:00 +01:00
Jonas 'Sortie' Termansen a1e9c15bca Add wcstof(3), wcstod(3) and wcstold(3). 2014-11-26 22:49:00 +01:00
Jonas 'Sortie' Termansen 749d123331 Maintain counts of physical frames used for particular purposes. 2014-11-26 22:27:04 +01:00
Jonas 'Sortie' Termansen 5f2106f512 Maintain size of allocated memory in the heap. 2014-11-26 22:25:37 +01:00
Jonas 'Sortie' Termansen f8c5adf20f Add #! support to execve(2). 2014-11-26 21:14:13 +01:00
Jonas 'Sortie' Termansen 3577cb81fe Improve execvpe(3) logic and run shell on ENOEXEC. 2014-11-25 23:52:12 +01:00
Jonas 'Sortie' Termansen 01402052f6 Add tcgetblob(2) and tcsetblob(2). 2014-11-25 18:40:50 +01:00
Jonas 'Sortie' Termansen d6067f9da7 Add btowc(3) and wctob(3). 2014-11-25 17:48:54 +01:00
Jonas 'Sortie' Termansen f41964fcab Reimplement wchar conversion API. 2014-11-24 17:41:26 +01:00
Jonas 'Sortie' Termansen 9e6148f6ff Refactor default compiler options logic. 2014-11-24 17:10:50 +01:00
Jonas 'Sortie' Termansen 6b4dbe0358 Rename crt1.o to crt0.o and install compatibility crt1.o.
This prepares for an incompatible compiler toolchain change scheduled for
Sortix 0.10 development where crt0.o is used instead of crt1.o.
2014-11-21 00:03:29 +01:00
Jonas 'Sortie' Termansen 550ba54a8f Honor feature macros in <wchar.h>. 2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen 95491e44ac Honor feature macros in <unistd.h>. 2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen 38b15f2e9f Honor feature macros in <string.h>. 2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen 571daf8aaf Honor feature macros in <stdio.h>. 2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen de5ac01a0b Honor feature macros in <stdint.h>. 2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen ead7cc00be Honor feature macros in <inttypes.h>. 2014-11-20 21:09:15 +01:00
Jonas 'Sortie' Termansen fbbb33287b Implement standard library feature macros. 2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen 7f7fd66039 Add isascii(3). 2014-11-20 21:09:14 +01:00
Jonas 'Sortie' Termansen bcf0720a59 Add versionsort_r(3). 2014-11-20 21:09:14 +01:00
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