Commit Graph

720 Commits

Author SHA1 Message Date
Ralph Holmes 5d774cce1d Fix execl(3) sentinel undefined behaviour.
execl(3) and its variants use a sentinel to terminate the variadic
argument list, in the form of a null pointer constant of type pointer to
char. POSIX mandates that NULL is a null pointer constant of type
pointer to void, which is not of an equivalent type to that required by
execl(3) and its variants, resulting in undefined behaviour.

This commit casts all such instances of NULL to pointer to char type.
For consistency, it also adds const-qualification to any such instances
which had already been casted, and were not const-qualified.
2016-09-30 23:36:49 +02:00
Jonas 'Sortie' Termansen 0756a7ee96 Add scanf(3) %n support. 2016-09-25 22:28:18 +02:00
Jonas 'Sortie' Termansen e962f5e4cc Fix use after free in getaddrinfo(3) error case. 2016-08-21 00:04:27 +02:00
Jonas 'Sortie' Termansen 9b98679885 Clean up errno. 2016-05-15 22:43:29 +02:00
Jonas 'Sortie' Termansen 01a9779fc6 Compile libc with -ffreestanding.
This properly avoids problems where the compiler is unaware that this is the
implementation and assumes it can rely on the implementation. For instance,
it might implement calloc using a call to calloc.

Restructure the code that wrongly assumed __STDC_HOSTED__ meant userspace.
2016-05-15 22:43:29 +02:00
Jonas 'Sortie' Termansen 1ca1a068a1 Make the branding system more neutral. 2016-05-15 22:43:29 +02:00
Jonas 'Sortie' Termansen 264805a4aa Remove uname -i and -o options.
These are unportable GNU extensions that's not needed for Sortix.
2016-05-15 22:43:29 +02:00
Jonas 'Sortie' Termansen 2a6a246ff4 Remove getdomainname(2). 2016-05-15 22:43:29 +02:00
Jonas 'Sortie' Termansen 1ef3c31f81 Clean up alloca.h header. 2016-05-15 22:43:29 +02:00
Jonas 'Sortie' Termansen 63146072a4 Fix getline(3) and getdelim(3) usage. 2016-05-15 19:32:04 +02:00
Jonas 'Sortie' Termansen 8d5599ba59 Fix shift out of bounds in fnmatch(3). 2016-05-15 19:30:51 +02:00
Jonas 'Sortie' Termansen f6cc06fbd1 Fix bsearch(3) performance. 2016-05-15 19:30:51 +02:00
Jonas 'Sortie' Termansen d9bb6da811 Fix pthread stack alignment. 2016-05-15 19:30:51 +02:00
Jonas 'Sortie' Termansen f3d77725d2 Begin development of Sortix 1.1. 2016-04-04 02:36:03 +02:00
Jonas 'Sortie' Termansen fe87b61a33 Add tagline. 2016-03-26 23:50:50 +01:00
Jonas 'Sortie' Termansen 05282c86d7 Fix fchownat(2) system call ABI on x86.
This system call has five arguments, of which one is a 64-bit uid_t, and
another is a 64-bit gid_t, which means that 7 registers are needed. However,
x86 only has 5 registers available for system calls. Wrap the system call
with a structure like with mmap(2).
2016-03-26 23:28:36 +01:00
Jonas 'Sortie' Termansen 443b4797bb Add dirname and basename to libk. 2016-03-07 17:46:14 +01:00
Jonas 'Sortie' Termansen 2b72262b4f Relicense Sortix to the ISC license.
I hereby relicense all my work on Sortix under the ISC license as below.

All Sortix contributions by other people are already under this license,
are not substantial enough to be copyrightable, or have been removed.

All imported code from other projects is compatible with this license.

All GPL licensed code from other projects had previously been removed.

Copyright 2011-2016 Jonas 'Sortie' Termansen and contributors.

Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2016-03-05 22:21:50 +01:00
Jonas 'Sortie' Termansen af40496ffb Convert utils to C. 2016-03-03 23:02:24 +01:00
Jonas 'Sortie' Termansen 8e988c1bf1 Convert libpthread to C and merge into libc. 2016-03-03 23:02:23 +01:00
Jonas 'Sortie' Termansen 01b59c1947 Convert libc to C. 2016-03-03 23:02:23 +01:00
Jonas 'Sortie' Termansen 6cab6d7aff Replace <elf.h> with public domain version from musl. 2016-02-29 01:37:31 +01:00
Jonas 'Sortie' Termansen 4f07e94b0c Rewrite strtof(3). 2016-02-29 01:37:30 +01:00
Jonas 'Sortie' Termansen 2ab9139f35 Fix missing malloc check in canonicalize_file_name_at(3). 2016-02-18 22:15:17 +01:00
Jonas 'Sortie' Termansen 7a7ddc2d73 Add guard page debug malloc. 2016-01-26 22:48:40 +01:00
Jonas 'Sortie' Termansen f876667cc5 Add socketpair(2) AF_UNIX stream support. 2016-01-26 22:11:12 +01:00
Jonas 'Sortie' Termansen 697d52b88a Add basic getaddrinfo(3) support for localhost ports. 2016-01-26 22:11:12 +01:00
Jonas 'Sortie' Termansen 624ceff900 Add _PC_NAME_MAX support. 2016-01-26 21:17:08 +01:00
Jonas 'Sortie' Termansen 8b03a9ab94 Update printf family to current coding conventions. 2016-01-26 21:17:08 +01:00
Jonas 'Sortie' Termansen b5f9876089 Remove unnecessary libg.a. 2016-01-26 21:17:08 +01:00
Jonas 'Sortie' Termansen 9e6876ff14 Split fdio into multiple files. 2016-01-26 19:01:36 +01:00
Jonas 'Sortie' Termansen 3320e29c95 Remove unused libc signal assembly files. 2016-01-26 19:01:36 +01:00
Jonas 'Sortie' Termansen 4d2901b90e Split stdin, stdout and stderr into their own files. 2016-01-26 19:01:36 +01:00
Jonas 'Sortie' Termansen 2e4b15daed Simplify directory reading. 2016-01-26 18:42:54 +01:00
Jonas 'Sortie' Termansen 56085108b6 Use fflush_unlocked as stdio's fflush_indirect.
exit(3) already locks the file before calling fflush_indirect.
2016-01-26 18:39:49 +01:00
Jonas 'Sortie' Termansen bb73362d23 Create stdio buffers at FILE creation time.
This removes support for user-supplied buffers with setvbuf.
2016-01-26 18:39:48 +01:00
Jonas 'Sortie' Termansen 63d42cd686 Add fstab(3). 2016-01-25 17:42:25 +01:00
Jonas 'Sortie' Termansen 360eaaf527 Declare file in the set function of setgetend functions. 2016-01-25 17:42:25 +01:00
Jonas 'Sortie' Termansen bff1265d62 Add termios(2). 2016-01-25 15:47:40 +01:00
Jonas 'Sortie' Termansen dbe6b32b1f Fix scanf integer parsing. 2016-01-22 20:01:33 +01:00
Jonas 'Sortie' Termansen 2e9153cdb9 Fix inet_addr and inet_ntoa not being part of _SORTIX_SOURCE. 2016-01-22 20:01:33 +01:00
Jonas 'Sortie' Termansen 9a59ef2313 Fix select(2) conformance issues. 2016-01-22 20:01:32 +01:00
Jonas 'Sortie' Termansen fbfe159046 Add crypt_checkpass(3) and crypt_newhash(3). 2016-01-09 02:54:51 +01:00
Jonas 'Sortie' Termansen 53711549af Add bcrypt_checkhash(3) and bcrypt_newhash(3). 2016-01-09 02:54:51 +01:00
Jonas 'Sortie' Termansen 8c7c6fa59f Center ascii cat on boot. 2016-01-08 19:56:11 +01:00
Jonas 'Sortie' Termansen 74fe008001 Silence static analysis warnings. 2016-01-08 00:48:01 +01:00
Jonas 'Sortie' Termansen ffe59b9c7c Fix mbrtowc decoding surrogates. 2016-01-07 19:17:04 +01:00
Jonas 'Sortie' Termansen 8f1353eb94 Fix getaddrinfo error reporting. 2016-01-07 19:08:43 +01:00
Jonas 'Sortie' Termansen 02f95d6c1c Add in6addr_any and in6addr_loopback. 2015-12-18 01:34:37 +01:00
Jonas 'Sortie' Termansen 610b60fa0d Import public domain <netinet/in.h> macros from musl. 2015-12-18 01:24:42 +01:00