summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-08-08kernel: use nil for pointers instead of 0, zero channel umc and dirrock in ↵cinap_lenrek
newchan()
2014-08-08ndb/dns: fix nil dereference crash with convM2DNS() returning reqmsg.qd == nilcinap_lenrek
2014-08-08devmnt: fix potential race with mntflushfree(), remove mntstats, 0 vs nil ↵cinap_lenrek
cleanup when mountmux() completes a request for another process, enforce odering of the loads and stores to the request prior to writing q->done = 1 so mntflushfree() sees q->done != 0 only when the request has actually completed. otherwise, the q->done = 1 store could have been reordered before the load from q->z, reading from already freed request and causing spurious wakeups. removing unused mntstats callback. use nil for pointers instead of 0.
2014-08-078c, 6c: generate enam.c file, just like 5ccinap_lenrek
2014-08-07pc, pc64: make pc kaddr() check reject -KZERO address (thanks aiju)cinap_lenrek
2014-08-075a, 5l: add LDREX/STREX/CLREX instructionscinap_lenrek
2014-08-07pc64: fix wrong Ureg* argument on note handler (thanks _sl!)cinap_lenrek
_sl reported crash: stats 593: suicide: sys: trap: fault write addr=0xffffffff8258d1b0 pc=0x204cc7 ; acid 593 /proc/593/text:amd64 plan 9 executable /sys/lib/acid/port /sys/lib/acid/amd64 acid: lstk() notejmp(ret=0x1,j=0x40ac90)+0x13 /sys/src/libc/amd64/notejmp.c:10 alarmed(a=0xffffffff8258d1b0,s=0x7ffffeffea58)+0x3f /sys/src/cmd/stats.c:718 notifier+0x3e /sys/src/libc/port/atnotify.c:15 acid: note how a in alarmed is a kernel address! the first Ureg* argument is passed to the note handler in the RARG (BX) register, which was not loaded when returning to userspace from syscall() thru forkret(). fix by returning thru noteret() from syscall().
2014-08-04samterm: fix ctrl-b crash when cmd window resized (thanks revex)cinap_lenrek
for reference: On IRC revex reported that samterm crashes on Ctrl-b if the command window has been resized. I was able to reproduce: http://plan9.stanleylieber.com/sam/bugs/ctrl-b.png ; acid 831213 /proc/831213/text:amd64 plan 9 executable /sys/lib/acid/port /sys/lib/acid/amd64 acid: lstk() abort()+0x0 /sys/src/libc/9sys/abort.c:6 panic1(s=0x400448)+0x27 /sys/src/cmd/samterm/main.c:692 panic()+0x19 /sys/src/cmd/samterm/main.c:684 lldelete()+0x71 /sys/src/cmd/samterm/flayer.c:221 flupfront(l=0x40eac0)+0x18 /sys/src/cmd/samterm/flayer.c:139 v=0x20062900000001 current(nw=0x40eac0)+0x49 /sys/src/cmd/samterm/main.c:156 type(l=0x40eac0,res=0x15300000001)+0x37c /sys/src/cmd/samterm/main.c:658 t=0x40eaa8 buf=0x419ec0 p=0x41dd48 a=0x0 backspacing=0x200000000 c=0x41dd4800000002 cursor=0x0 a0=0x0 threadmain(argv=0x7ffffeffefa0)+0x21c /sys/src/cmd/samterm/main.c:75 r=0xb0000001b1 got=0xfefefefe00000002 chord=0x0 nwhich=0x43c310 scr=0x200000000 t=0xfefefefefefefefe w=0x43c310fefefefe mainlauncher()+0x18 /sys/src/libthread/main.c:59 launcheramd64(arg=0x4194a0,f=0x221673)+0x10 /sys/src/libthread/amd64.c:11 0xfefefefefefefefe ?file?:0 acid:
2014-08-03iostats: properly distribute exit status and give usefull error messagescinap_lenrek
2014-08-03iostats: remove unused fcallfmt, dont leak our mount pipe end into exportfs proccinap_lenrek
2014-08-03iostats: bring back standard filedescriptor spyingcinap_lenrek
2014-08-02exportfs: simplify freefile() codecinap_lenrek
remove impossible checks, rewrite as while loop.
2014-08-02exportfs: remove getsbuf() nil check, can't happencinap_lenrek
2014-08-02iostats: isolate fs from interrupt notescinap_lenrek
interrupt notes go to the child process, not the filesystem and filter process.
2014-08-02iostats: cannot spy on fd 0,1,2 as /fd is per processcinap_lenrek
2014-08-02exportfs: cleanupcinap_lenrek
2014-08-02ftpfs: dont convert names to latin when string is valid utf-8cinap_lenrek
2014-08-02python: disable symlink and readlink compile options, ape has no reasonable ↵cinap_lenrek
way emulating it
2014-08-02iostats: dont prefix /bin to argv[0] when already absolute or relative pathcinap_lenrek
2014-08-02iostats: cleanup, remove bogus Maxrpc constantcinap_lenrek
2014-08-02iostats: reimplement iostats as a 9p filter instead of duplicating exportfscinap_lenrek
old iostats failed to work when builidng the kernel due to old bugs that where already fixed in exportfs. instead of backporting the fixes, reimplement iostats as a filter that sits between exportfs and the process mount. from users perspective, theres no difference. the result is much smaller and can handle everything that exportfs can like /srv.
2014-08-01usps: yet another updateftrvxmtrx
2014-08-01exportfs: use argv0 instead of hardcoding "/bin/exportfs" in openmount(), ↵cinap_lenrek
dont use 0 for nil
2014-07-31spred: scrolling and other bugfixesaiju
2014-07-30fstype: fix kfs detection (thanks kenji okomoto)cinap_lenrek
2014-07-30fortunes: From: urielc@cantv.netstanley lieber
2014-07-30spred(1): fix troffstanley lieber
2014-07-30added sprite editor spredaiju
2014-07-29fstype(1): document hjfsstanley lieber
2014-07-23rc: fix slow Xqdol(), avoid recursion in conclist(), estrdup(), avoid copyingcinap_lenrek
Xqdol() used to take quadratic time because of strcat(), the code isnt really needed as list2str() aready does the same thing in linear time without the strcat(). add estrdup() which uses emalloc() so allocation error are catched. move strdups() of name from callers into newvar(). avoid recursion of conclist(), and avoid copying of word strings by providing Newword() function which doesnt copy the word string.
2014-07-22ratrace(1): uses syscall not syscalltrace filemischief
2014-07-22fortunes: I wanted to do something that didn't involve arguing online about ↵stanley lieber
trivia. -- jwz
2014-07-22sega(1): add man page for games/md (and potential future sega emulators)stanley lieber
2014-07-22nintendo(1): document snesstanley lieber
2014-07-22games/md: add -2 -3 -a and trailing newline to usagestanley lieber
2014-07-22games/snes: add -a -h -m -T to usagestanley lieber
2014-07-22ratrace: make multithreaded ratraces less confusing (for mischief)cinap_lenrek
2014-07-21libdraw: add missing borderop() (thanks aiju)cinap_lenrek
2014-07-21pc64: cleanup syscallentry()cinap_lenrek
avoid the stack shuffeling and make syscallentry() and forkret() use the same stack offsets.
2014-07-20pc64: dont save/restore DS/ES/FS/GS segment registers on syscall or ↵cinap_lenrek
interrupt, they are ignored in long mode. we do not support 32 bit processes and DS, ES, FS and GS segment registers are ignored in long mode, so theres no point in saving and restoring them.
2014-07-20pc64: preserve user extern registers R14 and R15 across syscalls, use ↵cinap_lenrek
Ureg.bp (RARG) for syscall number the 6c compiler reserves R14 and R15 for extern register variables, which is used by the kernel to hold the m and up pointers. until now, the meaning of R14 and R15 was undefined for userspace and extern register would not work as the kernel trashes R14 and R15 on syscalls. with this change, user extern registers R14 and R15 are zeroed on exec and otherwise preserved across syscalls. so userspace *could* use them for per process variables like the kernel does. use Ureg.bp (RARG) for syscall number instead of Ureg.ax. this is less confusing and mirrors the amd64 calling convention.
2014-07-17a.out(6): sync definitionsmischief
2014-07-17libframe: use correct text color on frinsert depending on selection (thanks sl)cinap_lenrek
frinsert() used cols[TEXT] for drawing selected text instead of the HTEXT color. this was discovered with rio -b.
2014-07-15page: fix deadlock with addpage (thanks BurnZeZ for the stacktraces)cinap_lenrek
addpage() should not be called with the display locked as it calls showpage1() which sleeps when there are too many processes active. the bug was triggered by plumbing to trigger the addpage().
2014-07-15devproc: nilcinap_lenrek
2014-07-15devproc: fix syscalltrace error handling, conistent use of nil for pointerscinap_lenrek
2014-07-14devproc: fix mistakecinap_lenrek
2014-07-14devproc: fix proccrlmemio bugscinap_lenrek
dont kill the calling process when demand load fails if fixfault() is called from devproc. this happens when you delete the binary of a running process and try to debug the process accessing uncached pages thru /proc/$pid/mem file. fixes to procctlmemio(): - fix missed unlock as txt2data() can error - make sure the segment isnt freed by taking a reference (under p->seglock) - access the page with segment locked (see comment) - get rid of the segment stealer lock other stuff: - move txt2data() and data2txt() to segment.c - add procpagecount() function - make return type mcounseg() to ulong
2014-07-13libmach: fix break point instruction for little endian MIPS (from sources)cinap_lenrek
fix break point instruction for little endian MIPS in libmach. (patch /n/sources/patch/libmach-mipsle-bpinst)
2014-07-13tftpfs: make sure path is null terminatedcinap_lenrek