direct download

dash 1

dash 1 manual

kernel and drivers

kernel: fix typo in devmnt mntproc name

kernel: use nicer check in okaddr(), wet floor signs in fixfault()

kernel: cleanup exit()/shutdown()/reboot() code

kernel: use uintptr for ibrk() return value (for base >2GB) and clarify segbrk(2)

kernel: missing changes for ibrk() prototype

kernel: change active.machs from bitmap to char array to support up to 64 cpus on pc64

pc, pc64: fix sdvirtio descriptor count when sending flush

pc, pc64: add did for intel wildcat point audio controller

pc, pc64: import i210 support from erik quanstrom’s 9atom

zynq: fix cache flush bug for emmc driver (have to invalidate cache before read)

zynq: clean cache unconditionally before dma, invalidate cache after dma for read case

devenv: fix ORCLOSE handling

devip: various bugfixes and cleanups for arp code

devip: declare cleanarpent() static

devproc: remove unused extern int unfair

devqspi: fix qunlock error on stat() -> close()

devsd: remove unused timeout field from SDreq

devsd: handle SYNCHRONIZE CACHE scsi commands as nops in sdfakescsi()

devtls: add sha256 mac

devtls: reject SHA2_256 mac for SSL, but TLS is fine

devtls: implement chacha20/poly1305 aead cipher suits

igfx: fix typos (thanks qwx)

sdmmc: handle fakescsi emulation

tcp: fix mtu on server sockets again (thans mycroftix)

usbehci: clean cache unconditionally before handing a buffer to the hardware

wifi: quote value of parsed ether options

wifi: prioritize rsne over wpaie


bootrc: remove usbwait hack, usbd/nusbrc are now synchronous by previous commit

do not handle kfs boot

move screen and mouse setup code to /rc/bin/screenrc

nvram: introduce AES key

compilers and debuggers

cc: handle 64 bit mixedmode asop and type vlong <-> float/double type conversions

cc: TUSHORT -> TRUNE for lstring constats for OUSED

cc: allow runes as macro names (from charles forsyth)

cc: getflag() fmt will be terminated at end of loop (from charles forsyth)

cc: include $builtin as keywoard in pickle() (from charles forsyth)

cc: restore side(), but do not consider OINDEX as side effect free

cc/6c: fix return type of mixed asop expressions, preserve type for moves so fixed<->float conversions work correctly

5c/6c/8c/kc/qc/vc: import various changes from charles forsyth

5c: handle 64 bit mixedmode asop

5c: handle (rare) MULU instruction in peephole optimizer

6c: remove 6c/vlrt.c file

6c: return vlong result for pointer subtraction

8c: make cgen64() compile target first when it contains functoin call so final assignment wont trash the registers

8c: handle 64 bit mixedmode asop and type vlong <-> float/double type conversions

8c: dont abort() when running out of registers.

vc: handle 64 bit mixedmode asop

cpp: fix memory corruption due to input buffer relocation

cpp: handle 4 byte utf sequences (21-bit runes)

acid/leak: fix endless loop for B2NB(b) == b case (thanks mischief)


ape: add badrect object into ape libdraw

ape: set MB_CUR_MAX to 4 in stdlib.h for 21-bit runes (thanks erik quanstro)

ape: add machine specific code for spim

ape: add missing _subv() function to 386/vlop.s

lib9p: add reqqueuefree

lib9p: do not override Srv.end in listensrv(), simplify srvclose() and recounting

libauthsrv: generalize ticket service, not hardcoding ticket format and DES encryption

libauthsrv: add missing files (thanks mischief)

libauthsrv: randomize aes key in mkkey()

libauthsrv: fix _asgetresp() for passwd

libc: import more endianness fixes (thanks cherry9)

libc: remove privfree(), simplify privalloc()

libc: add uv2d()/uv2f() and vas*d() functions to vlrt.c

libdraw: remove unneeded check (thanks BurnZeZ)

libfis: fix wrong shift for lba40 (thanks geoff and charles)

libjson: fix memory leak setjmp/longjmp problem (thanks spew) libjson: added printing support (thanks spew)

libmp: add mpnrand() function to generate uniform random number 0 ≤ x < n

libmp: add mpvecdigmuladd()/mpvecdigmulsub() assembly routines for arm

libmp: optimize case x/0xffffffff in mpdigdiv() (helps arm)

libmp: 386/amd64 mpvec*(): replace conditional branches with ADC/SBB instructions

libmp: add mpvecadd()/mpvecsub() assembly versions for arm

libmp: fix test program

libmp: initial attempt at constant time code, faster reductions for special primes (for ecc)

libmp: mpmod() fix typo

libmp: fix wrong move instruction for arm vector operations

libmp: fix assert() for mpexp() with nil modulus

libmp: add logic operations; mpfmt: include 0x with #

libmp: fix bug in mplogic.c; update mkfile

libmp: strtomp support for bases 2,4,8

libmp: add mpfield() function for fast field arithmetic

libmp: mpfmt: handle base 2, 4

libmp: support for c-style base prefixes for strtomp(), octal support

libmp: mistake in strtomp()

libmp: check nil return value of strtomp() in test program

libmp: silence compiler warning for strtomp

libsec: add pbkdf2_hmac_sha1() (from wpapsk factotum module)

libsec: fix probably_prime() endless loop for n == 3

libsec: add q parameter to dh_new() for subgroup support, sanitize dh parameters

libsec: add TLS_RSA_WITH_AES_128_CBC_SHA256 and TLS_RSA_WITH_AES_256_CBC_SHA256 ciphers

libsec: add curve25519() from

libsec: work arround 8c running out of registers compiling curve25519.c

libsec: remove flawed aes() digest and hmac_aes() implementations (thanks aiju)

libsec: add curve25519 diffie hellman

libsec: declare aes_setupEnc static

libsec: generalize pbkdf2_hmac_sha1() to pbkdf2_x() passing the hmac as an argument

libsec: add rfc5869 hmac-based key derivation function hkdf_x()

libsec: handle TLS 1.2 changes in CertificateRequest message

libsec: send sigature_algoritms extension for TLS1.2, order ciphers

libsec: add TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 and TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 cipher suits

libsec: save some space making weakCipher bitamp of type char[] instead of int[]

libsec: fix memory leak in ecmul()

libsec: implement dh parameter signature verification, stop lying about non-rsa ciphers, fix memory leaks in X509 code

libsec: make sure Elem is zero initialized so freevalfields() wont cause accidents

libsec: handle missing signature case; can happen because some ciphers make it optional

libsec: implement client certificate authentication for tls1.2

libsec: fix memory leaks in X509req() and X509gen() and return malloced pointer

libsec: cleanup newbytes()/newints()/newbits() and get rid of OFFSETOF() macro

libsec: use the right string encoding for various x509 fields

libsec: clarify the code by declaring constant for DirectoryString and handle conversion in mkstring()

libsec: remove rc4 cipher suits for tls

libsec: add poly1305

libsec: add chacha cipher (from charles forsyth)

libsec: add chacha20 poly1305 aead, allow 64 bit iv’s for chacha, add tsmemcmp()

libsec: fix genprime() to produce normalized result

libsec: use tsmemcmp() when comparing hashes, use mpfield() for ecc, use mptober() when right adjusting mpint to bytes

libsec: implement TLS-PSK for tlsClient()/tlsServer()

libsec: make sure theres no garbage after the asn.1 decode, cleanup

libthread: get rid of tprivalloc()/tprivfree()/tprivdata() and _workerdata() (thanks qrstuv)


9660srv: do not ignore upper 32 bits of offset when reading directory

9fs: add 9pio case for unauthenticated connections to

9fs: add case 9front

ascii: replace mnemonic np (new page) with ff (form feed) for consistency

auth: release dp9ik implementation and reentrant factotum

auth/*: remove private /dev/random reading routines, use genrandom()

auth/changeuser: set the aes key in plan9 database, but not in securenet db

auth/convkeys2: remove

auth/httpauth: use auth_userpasswd() instead of AuthHttp request to AS

auth/passwd: fix structure zeroing order

aux/disksim: don’t assume 4-byte pointers

aux/gpsfs: fix usage

aux/listen1: allow alternative namespace when running as user none with -n option

aux/statusbar: use title as rio window title (thanks qrstuv)

cpu, import: remove old9p support

cwfs: adjust for new libauthsrv changes

cwfs: remove 9p1 support

cwfs: initialize /env/timezone on boot so dumps are in localtime

cwfs: don’t use sprint() to fill directory name

cwfs: fix wstat() failing to mark block dirty when noatime is set

delkey: print commands instead of starting a dialogue

doctype: learn to timepic

disk/fdisk: properly convert byte units K,M,G and T to cylinders/sectors

disk/mkfs: rmeove kfs support

dossrv: handle file offsets > 231

E: import script from bell labs

file: detect DICOM and XM audio headers

file: recognize tcpdump pcap files

file: recognize bootable disk images (by 0x55AA boot sector signature)

fshalt: remove kfs support

games/doom: fix bogus pointer arithmetic, do sfx initialization in two passes for linked sounds

html2ms: handle subscripts and superscripts

html2ms: bold table headings, remove wrong tag space handling

import/expoerfs: dont assert() fault when ai->secret is > 8 bytes, just use the first 8 bytes

init: remove dependency to <authsrv.h>

ircrc: add -P option for server password (thanks, nick)

keyfs: introduce AES key

keyfs: fix typo (thanks jpm)

kfs and kfscmd: remove

mothra: add subscript and superscript support

mothra: add missing initializations for plaintext html state

mothra: make text inside td bold

mothra: hr drawing

mpc: add (extended precision code generator)

qr: add (generate qr codes)

rc: Added change to /rc/lib/rcmain to allow execution of /rc/lib/rcmain.local if it exists. /rc/lib/rcmain.local is similar to $home/lib/profile in that it will only be executed with -l, but is site-wide.

resize: add -n for nearest neighbour

rio: fix scrolling when cursor is above window

rio: stop serving kbdin file (thanks eekee)

rio: fix handling “resize” wctl for hidden windows

rio: allow reading the image of a hidden window thru the window file

rsa2x509, rsa2csr: add newline in usage print

rx: theres no p9sk2 anymore

scuzz: uncomment synccache command

snoopy: fix timestamps for pcap files (thanks BurnZeZ)

srvold9p: remove

tapefs: remove dependency to <authsrv.h>

tar: make z flag work, even when no file name was provided (thanks aiju)

timepic: string support

tput: check sbrk return value

usbd: introduce /env/usbbusy

venti/fixarenas: replace %z fmt with %Z

webcookies: strdup() file argument to avoid crash (thanks mischief)

winwatch: l allows label changes

yacc: attempt to keep line numbers right for yyparse()

manual pages, documentation, misc

/lib/1oct1993: use words correctly (thanks, spew)

2c(1): fix spelling error for the axp entry

delkey(1): update man page to reflect recent changes

fplot(1): add BUGS section, fix typo

import(4): remove -o, -O flags

mp(2): fix typo mnprand() -> mpnrand()

qer(8): correct man page example (thanks, kenji)

qr(1), timepic(1): add

utf(6), rune(2): document 21-bit runes

remove kfs references from manual