Commit Graph

2696 Commits

Author SHA1 Message Date
Juhani Krekelä 2e193b6014 Fix possible overflow when resizing buffers and remove unncessary casts.
A line longer than 2G might overflow the size_t containing the buffer
length on 32-bit platform. Fix is to use reallocarray with second
parameter twice the size of the element to double the buffer size, since
it will error out if there was an overflow.
2021-11-02 02:11:18 +02:00
Juhani Krekelä cb4a631524 Fix indentation in switch-statement in utils/tail.c.
Sortix coding style does not indent the cases of a switch statement.
2021-10-31 00:46:13 +03:00
Jonas 'Sortie' Termansen db5b51d673 Fix spurious ptable assertion in the fork error path. 2021-10-10 00:07:06 +02:00
Jonas 'Sortie' Termansen 3048fdf7a1 Add presubmit. 2021-10-10 00:07:06 +02:00
Juhani Krekelä d4528e9401 Add dnsconfig(8). 2021-10-09 21:11:56 +03:00
Juhani Krekelä d605911ddc Make command-not-found(1) data-driven.
Previously command-not-found(1) encoded all its suggestions in code.
This changes it to use a data table to make it easier to understand and
to modify with new suggestions.
2021-10-06 23:37:08 +03:00
Jonas 'Sortie' Termansen c2088ae3ee Fix shell double quoting escaping non-special characters.
This bug was reported by Ricardo Grant.
2021-09-13 20:37:56 +02:00
Juhani Krekelä e02b84cb93 Update porting guide to reflect Sortix in upstream config.sub. 2021-08-20 13:06:46 +03:00
Juhani Krekelä 777ed060c6 Fix typos in doc/. 2021-08-20 13:03:42 +03:00
Juhani Krekelä 79799b0084 Support historical syntax in head(1) and tail(1). 2021-08-17 00:03:32 +03:00
Juhani Krekelä 89b02af091 Fix release-iso-modification(7) to use modern tail(1) syntax.
Historically tail(1) used `tail -1` style syntax, but this has been
obsoleted by the modern conventional-style `tail -n 1`.
2021-08-16 21:49:00 +03:00
Juhani Krekelä 198c54ed25 Rewrite tail(1). 2021-08-15 16:16:19 +03:00
Juhani Krekelä 42c94ee36b Mark install(1) dependant on utils/cp.c and head(1) on utils/tail.c 2021-07-29 00:40:49 +03:00
Jonas 'Sortie' Termansen 63ce55e7e9 Fix reading directories not failing with EISDIR. 2021-07-28 22:21:41 +02:00
Jonas 'Sortie' Termansen 16bdb2ba84 Fix setuid(2) and setgid(2) not setting the effective user and group.
Thanks to samis for discovering this problem and the initial attempt at
fixing it.
2021-07-27 00:46:42 +02:00
Jonas 'Sortie' Termansen c28667fdf7 Add porttix-create support for a secondary tarball.
This functionality is needed for ports such as perl that needs
perl-cross extracted on top of it.
2021-07-21 14:01:06 +02:00
Jonas 'Sortie' Termansen 9a20f8cc37 Publish releases by the release name. 2021-07-20 22:11:27 +02:00
Jonas 'Sortie' Termansen 20df95f1ec Add /tix/tixinfo to the system manifest. 2021-07-20 22:08:11 +02:00
Juhani Krekelä 6385ea1957 Fix pipes reporting themselves as character devices through fstat(2). 2021-07-16 01:43:33 +03:00
Jonas 'Sortie' Termansen 2d841bae7c Fix kernel deadlock in ppoll(2). 2021-07-14 15:41:28 +02:00
Jonas 'Sortie' Termansen 6bca83b399 Add sh(1) exec builtin. 2021-06-27 15:29:26 +02:00
Jonas 'Sortie' Termansen 80f5ca398a Add ATAPI support to ata(4). 2021-06-27 13:54:56 +02:00
Jonas 'Sortie' Termansen bce37028f5 Store binary package repository in the release directory. 2021-06-24 22:35:39 +02:00
Jonas 'Sortie' Termansen fa5f1b826e Add sha256sum to release directory. 2021-06-24 22:35:39 +02:00
Jonas 'Sortie' Termansen cffa7fa7b7 Add manual pages to the release. 2021-06-24 22:35:39 +02:00
Jonas 'Sortie' Termansen aeb7e0ccfc Store kernel and initrds in the release directory. 2021-06-24 22:35:39 +02:00
Jonas 'Sortie' Termansen 5e7605fad2 Implement threading primitives that truly sleep.
The idle thread is now actually run when the system is idle because it
truly goes idle. The idle thread is made power efficient by using the hlt
instruction rather than a busy loop.

The new futex(2) system call is used to implement fast user-space mutexes,
condition variables, and semaphores. The same backend and design is used as
kutexes for truly sleeping kernel mutexes and condition variables.

The new exit_thread(2) flag EXIT_THREAD_FUTEX_WAKE wakes a futex.

Sleeping on clocks in the kernel now uses timers for true sleep.

The interrupt worker thread now truly sleeps when idle.

Kernel threads are now named.

This is a compatible ABI change.
2021-06-23 22:10:47 +02:00
Jonas 'Sortie' Termansen 29b14378e8 Fix usleep(2) sleeping 1000x too much regression. 2021-06-23 22:09:57 +02:00
Jonas 'Sortie' Termansen 4daedc31f7 Fix handling of overflow and non-canonical values in timespec APIs.
Support zero relative and absolute times in the timer API.
2021-06-22 21:48:27 +02:00
Jonas 'Sortie' Termansen 109a229b42 The Master Boot Record counts numbers of 512 bytes rather than sectors.
It seems that CD-ROMs with MBRs count number of 512 bytes rather than number
of 2048-byte sectors.
2021-06-17 23:58:19 +02:00
Jonas 'Sortie' Termansen 3b036b6c5d Add getdnsconfig(2) and setdnsconfig(2). 2021-06-13 23:27:52 +02:00
Jonas 'Sortie' Termansen 23ddc536bc Add -bdfgikhMnt options to sort(1). 2021-06-13 12:51:18 +02:00
Jonas 'Sortie' Termansen 27f81b09a6 Add /var/cache, /var/log, and /var/run. 2021-05-30 23:50:42 +02:00
Jonas 'Sortie' Termansen 9d87d76957 Abort on overlapping memcpy. 2021-05-30 23:48:19 +02:00
Jonas 'Sortie' Termansen 280ba8d64d Rewrite find(1). 2021-05-29 01:04:53 +02:00
Jonas 'Sortie' Termansen 1c9233e0c9 Add ENOMEDIUM. 2021-05-29 00:52:33 +02:00
Jonas 'Sortie' Termansen 18ba2d2fe3 Use example domain in serial-transfer(7). 2021-05-28 22:59:18 +02:00
Jonas 'Sortie' Termansen 11be0007b8 Remove ENOUSER and ENOGROUP.
The <pwd.h> and <grp.h> family of functions are supposed to return
nothing with no error set if there is no matching entry.
2021-05-10 23:26:31 +02:00
Juhani Krekelä 7f9a62d916 Implement Alt + key mapping to Esc followed by key in kernel tty 2021-05-05 00:19:56 +02:00
Juhani Krekelä 73e42780f4 Add more keybinds for scrolling in pager(1)
b commonly corresponds to Page Up, and f is added to match.

j and k for lines, ^F and ^B for pages, and g and G for home/end are from vi.

C-n and C-p for lines and C-v and M-v for pages are from Emacs.

< and > for home/end allow using Emacs M-< and M->, tho they are from less(1).
2021-05-04 22:14:47 +00:00
Juhani Krekelä 5e666dce8a Change `go to line` keybind in editor(1) from ^I to ^G
Since this is a console program, ctrl + letter gets mapped to a
control character in the range 1 to 26. Most of these control
characters are no longer in use and can safely be assumed to be
result of ctrl + letter, but ^I maps to the tab character.

I chose ^G since the keybind is memorable, and a user is unlikely
to try to type the BEL character.
2021-05-02 22:42:37 +02:00
Juhani Krekelä 86fa692c74 Do not try to copy zero-length buffers in editor_type_newline()
While under Sortix these operations ought to be safe, UBSan will
complain regardless if you do a zero-byte memmove from NULL. This
caused the editor forcibly quit whenever it tried to open a file
that had an empty first line and at least one another line.
2021-05-02 22:42:37 +02:00
Juhani Krekelä 287425ac5a Add Finnish Multilingual keyboard layout 2021-05-02 20:12:33 +03:00
Juhani Krekelä eaa7732901 Add bare +altgr/-altgr modifier support to kblayout-compiler(1) 2021-05-02 20:08:21 +03:00
Jonas 'Sortie' Termansen a83072bc3e Fix username/password typo in release-iso-modification(7).
Thanks to jjuran for spotting this error.
2021-04-21 22:30:22 +02:00
Jonas 'Sortie' Termansen b52bfa5978 Add nl(1). 2021-04-21 22:30:21 +02:00
Jonas 'Sortie' Termansen a8f8b4cfd6 Add format support to date(1). 2021-04-06 23:22:22 +02:00
Jonas 'Sortie' Termansen 6a778c6089 Fix strftime(3) error handling and add %F, %z, and %Z support. 2021-04-06 23:22:22 +02:00
Jonas 'Sortie' Termansen c25f36cd53 Fix faccessat(2) not supporting root access. 2021-02-17 23:11:31 +01:00
Jonas 'Sortie' Termansen a6295e6d90 Allow poll on all kinds of files. 2021-02-17 23:11:31 +01:00