summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-01-01mergecinap_lenrek
2014-01-01kernel: nil check, exited procs handling in postnote()cinap_lenrek
make sure not to dereference Proc* nil pointer. this can potentially happen from devip which has code like: if(er->read4p) postnote(er->read4p, 1, "unbind", 0); the process it is about to kill can zero er->read4p at any time, so there is the possibility of the condition to be true and then er->read4p becoming nil. check if the process has already exited (p->pid == 0) in postnote() under p->debug qlock.
2014-01-01proc(3): the args file is writable, not read only (thanks qrstuv)cinap_lenrek
2014-01-01kernel: remove error label in pgrpnote() arround postnotecinap_lenrek
postnote does not raise error, so the error label is not neccesary.
2014-01-01kernel: fix alarm postnote racecinap_lenrek
when alarmkproc is commited to send the alarm note to the process, the process might have exited already, or worse, being reused for another process. pexit() zeros p->alarm at the beginning, but the kalarmproc() might read p->alarm before pexit() zeroed it, decide to send the note, then get preempted and pexit() releases the proc. once kalarmproc() is resumed, the proc might be already something different and we send the note to the wrong thing. we now check p->alarm under the debug qlock. that way, pexit() cannot make progress while we test the condition. remove the error label arround postnote(). postnote does not raise error.
2013-12-31devproc: fix noteid permission checks for nonecinap_lenrek
make sure noteid is valid (>0). prohibit changing note group of kernel processes. this is also checked for in pgrpnote(). prevent "none" user from changing its note group to another "none" sessions. this would allow him to send notes other none processes other than its own.
2013-12-31kernel: check for error label stack underflow in nexterror()cinap_lenrek
2013-12-31mothra: mouse scrollwheel behave the same as in samstanley lieber
2013-12-31kernel: halt idle processors on mp system by default (from sources)cinap_lenrek
one can add: int idle_spin = 1; in the kernel configuration to enable the old behaviour. see the comment at idlehands().
2013-12-29kernel: remove unused debug cprint() function from port/cache.ccinap_lenrek
the cache can be inspected more easily with acid kernel library.
2013-12-29kernel: dont call pprint() while holding up->debug qlockcinap_lenrek
pprint() might block or even (maliciously) call into devproc write which will corrupt the qlock chain on attempt to qlock up->debug again.
2013-12-29kernel: make sure user text, data and bss wont overlap the stack segment in ↵cinap_lenrek
sysexec()
2013-12-28mothra: add regular expression text search (thanks mischief, sl)cinap_lenrek
this works differently from mischiefs original patch. instead of overloading the address bar, we popup our own enter box. the function can be invoked from the menu or by hitting ^F.
2013-12-28page: fix page bookmarks for epub filescinap_lenrek
2013-12-28ape: move strdup() from libbsd to libap (from sources)cinap_lenrek
including <string.h> should be enougth to make strdup() available.
2013-12-27cifs(4): replace with correct versionstanley lieber
2013-12-27cifs(4), cifsd(8): add HISTORYstanley lieber
2013-12-27add HISTORY to various man pagesstanley lieber
2013-12-27audio/mixfs: implement Tstat to obtain buffer size, better underrun handlingcinap_lenrek
2013-12-26audio(1): add pcmconv to HISTORYstanley lieber
2013-12-26fortunes: That's a video card, Blake.stanley lieber
2013-12-26audio(3): fix spellingstanley lieber
2013-12-26audio(1): add HISTORY, fix spellingstanley lieber
2013-12-26add audio/mixfs to allow simultanious playback streams over a single /dev/audiocinap_lenrek
2013-12-25json(2): fix out of order SOURCE headingcinap_lenrek
2013-12-25devmouse: exclude sroll-wheel buttons from differential button handlingcinap_lenrek
preventing wheel buttons 4 and 5 fron getting stuck with multiple input devices.
2013-12-25acid leak: remove arena pointer a < 0xff000000 checkcinap_lenrek
in the kernel, area can lie above 0xff000000
2013-12-25devdraw: fix drawdelname() string memory leakcinap_lenrek
2013-12-25window: fix various problems, cleanupcinap_lenrek
with window -m, properly remove the old wsys from /dev before binding new window to it, so the original window wont leak into the new namespace. do not pass -pid when $wsys does not refer to a local running rio. cleanup environment before running sub-process. set window label consistentently no matter if -m is used or not.
2013-12-23page: scrollwheel, better backwards scrolling, fix blit bug when page was ↵cinap_lenrek
translated offscreen
2013-12-22/sys/lib/plumb/basic: add commas to some rules for file names that will ↵stanley lieber
frequently contain commas
2013-12-22fshalt: rfork n to avoid limbo namespace when the command failscinap_lenrek
2013-12-21mergecinap_lenrek
2013-12-21add plumbing rules for page bookmarks and audio playbackcinap_lenrek
2013-12-21page: implement bookmarks (thanks trav_ for starting it)cinap_lenrek
add new functions pageaddr() that returns a string describing the page to be loaded. it is in the form of: /path/to/file!pagename!subpage!.... one can jump to such a page by calling trywalk(name, addr) where name and addr get concatinated with ! to form a page address and then the currently loaded pages are walked up to the nearest page which is then returned. (or nil when not found). the remaining address will be set in the global pagewalk variable. once pages get loaded (asynchronously), pagewalk1() gets called again on addpage() and continues the walking up to the last page. new program flag -j <addr> was added to jump to a page on startup. page address (without filename) can also be supplied in plumb message with the "addr" attribute.
2013-12-19fortunes: What an amazing year for the Web.stanley lieber
2013-12-19json(2): fix spelling errorstanley lieber
2013-12-19add medium to low quality json(2) manual pagecinap_lenrek
2013-12-19rio: dont consider shell characters as part of the filename for auto completioncinap_lenrek
rio looks backwards in the line for the beginning of a filename that needs to be completed with ^F. this change makes the characters: =, ^, ( and { stoppers, so filename completion will work in all these cases: foobar=/foo/ba^F; for(i in (fo^F ba^F)){/bin/baz^F this means completion will not work for prefixes having these special characters in them. thanks to burnzez for bringing it up.
2013-12-17acid leak: handle ALIGN_MAGIC padding of skip area for mallocalign()cinap_lenrek
the alloc and realloc tag words do not start at the beginning of a block created by mallocalign(). instead, the block is padded with ALIGN_MAGIC.
2013-12-17pool: update debug log format string for poolallocalign()cinap_lenrek
2013-12-17devether: fix spelling mistypecinap_lenrek
2013-12-16ether82598, ether82563: remove packblock() avoidance hackcinap_lenrek
2013-12-16etheryuk: fix problems with yukon2 ep+ rev0, deoptimizecinap_lenrek
2013-12-16devether: remove qfull prints and fix loopback packet handling of etheroq()cinap_lenrek
dont spam the console with qfull warnings. this makes things worse. handle loopback packets as stated in the comment. we call etheriq() with fromwire=1 for loopback packets so etheriq() can pass the packet on (without copying) or free it. dont inhibit interrupts while calling etheriq(). etheriq() can safely be called from process and interrupt context. it is unclear what this was supposed to fix and testing didnt seem to have any odd effects.
2013-12-16devssl: use parsecmd() to process control message to get rid of 128 byte ↵cinap_lenrek
stack buffer limit (11:02:29 PM) me: why is buf in /sys/src/9/port/devssl.c:/^sslwrite only 128 bytes? (11:02:58 PM) me: it makes it so you can't use a 128 bytes secret as negotiated by infauth in a secretin or secretout ctl message (11:03:30 PM) me: which in turn means you can't use such a secret with pushssl(2) (11:06:15 PM) me: inferno's sslwrite is limited to 32 bytes, but its ssl library writes to the secret files instead of to the ctl file (11:08:50 PM) mischief: what should it be instead of 128 bytes (11:08:58 PM) me: larger (11:09:16 PM) mischief: how about 129 bytes? (11:09:59 PM) me: also broken in 9front, by the way (11:15:14 PM) me: i guess it should be replaced with parsecmd
2013-12-15exportfs: get rid of limits, cleanupcinap_lenrek
get rid of the service buffer limit. keep service buffers on a global freelist protected by lock. dont fatal when we hit the process limit. instead, just abort the rpc with an error. handle rendezvous() interrupts.
2013-12-13god damn it forgot fucking fns.h from my last commitMatthew Veety
2013-12-13Added in /dev/cputemp for bcm kernel (Thanks Krystian!)Matthew Veety
2013-12-11cifs(4): fix documentation for -d flagcinap_lenrek