Commit graph

1862 commits

Author SHA1 Message Date
cinap_lenrek 4a6ab355c1 file: recognize bootable disk images (by 0x55AA boot sector signature) 2015-12-23 02:31:47 +01:00
cinap_lenrek 76e5cda11a file: recognize tcpdump pcap files 2015-12-23 02:11:29 +01:00
cinap_lenrek 46bbeea040 snoopy: fix timestamps for pcap files (thanks BurnZeZ)
the pcap files produced by snoopy had the wrong timestamps because it expected:

/* magic=0xa1b2c3d4 */
ulong ts_sec;	/* seconds*/
ulong ts_usec;	/* microseconds */

but we wrote:

uvlong ts;		/* nanoseconds */

now, we write:

/* magic=0xa1b23c4d */
ulong ts_sec;	/* seconds */
ulong ts_nsec;	/* nanoseconds */
2015-12-23 02:00:09 +01:00
cinap_lenrek a8f8de1cde import/expoerfs: dont assert() fault when ai->secret is > 8 bytes, just use the first 8 bytes 2015-12-16 21:30:56 +01:00
cinap_lenrek e83c9b3e61 auth/httpauth: use auth_userpasswd() instead of AuthHttp request to AS
the /sys/lib/httppasswords will be removed soon from authsrv,
so we use auth_userpasswd() to verify a username/password pair
instead.
2015-12-16 21:27:44 +01:00
cinap_lenrek 9e09742e9b yacc: attempt to keep line numbers right for yyparse()
as the generated parser intermixes lines from .y source
and the parser text, the line source/lineno for yyparse()
shows up wrong in the debugger. to make stack traces a
bit less crazy, put a #line 1 "/sys/lib/yaccpar" before
copying in the parser text.
2015-12-07 17:00:41 +01:00
aiju eccb144a71 winwatch: l allows label changes 2015-12-06 20:37:18 +01:00
aiju 4770f60b18 mkone: yacc wants the D 2015-11-30 23:36:39 +01:00
cinap_lenrek bdaa002255 webcookies: strdup() file argument to avoid crash (thanks mischief)
mischief reports:

 acid: lstk()
 abort()+0x0 /sys/src/libc/9sys/abort.c:6
 ppanic(p=0x1bff4,fmt=0x1d749)+0x146 /sys/src/libc/port/malloc.c:166
         pv=0x1dad8
         msg=0x1e4a8
         v=0x3ffffe7c
         n=0x2f
 D2B(p=0x1bff4,v=0x3fffffae)+0x57 /sys/src/libc/port/pool.c:926
         a=0x3fffffa4
 poolfreel(v=0x3fffffae,p=0x1bff4)+0x20 /sys/src/libc/port/pool.c:1152
         ab=0x1dad8
 poolfree(p=0x1bff4,v=0x3fffffae)+0x3b /sys/src/libc/port/pool.c:1287
 free(v=0x3fffffb6)+0x23 /sys/src/libc/port/malloc.c:250
 readjar(file=0x3fffffb6)+0xce /sys/src/cmd/webcookies.c:473
         jar=0x1ea28
         lock=0x1ea68
         p=0x1ea6d
 main(argv=0x3fffffa0,argc=0x0)+0x10f /sys/src/cmd/webcookies.c:1295
         file=0x3fffffb6
         srv=0x0
         mtpt=0x1cfd0
         _argc=0x66
         _args=0x1cfe0
         home=0x0
 _main+0x31 /sys/src/libc/386/main9.s:16
 acid:
2015-11-30 20:08:22 +01:00
BurnZeZ 90695e2eb2 mpc: mpc.c is generated by yacc, so remove it on mk clean 2015-11-25 11:39:01 -05:00
cinap_lenrek d7303af06d rio: allow reading the image of a hidden window thru the window file 2015-11-25 04:31:30 +01:00
cinap_lenrek 9ef4ba83f6 rio: fix handling "resize" wctl for hidden windows
when the "resize" wctl was used on a hidden window, the window
was put back on the screen, however, it was not removed from
the hidden[] array so trying to hide the window again failed
because whide() assumed it was already hidden.

the fix is to not unhide the window, but preserve the hidden
state, so windows can programmatically be reshaped and moved,
but will remain hidden unless explicitely unhidden.
2015-11-25 04:30:44 +01:00
cinap_lenrek e82b10ffb4 disksim: don't assume 4-byte pointers 2015-11-24 11:02:04 +01:00
cinap_lenrek 518fd3ec83 rio: stop serving kbdin file (thanks eekee)
kbdfs already provides a /dev/kbdin file for the system, rio does
not need to provide one for the onscreen keyboard anymore.
2015-11-23 00:50:44 +01:00
cinap_lenrek 569bdd00c2 add mpc(1), extended precision code generator 2015-11-22 23:47:58 +01:00
cinap_lenrek 7e3b2cdb55 usbd: intoruce /env/usbbusy
to solve the usb device enumeration race on boot, usbd creates /env/usbbusy
on startup and once all devices have been enumerated and readers have consumed
all the events, we remove the file so nusbrc/bootrc can continue. this makes
sure all the usb devices that where plugged in on boot are made available.
2015-11-22 03:17:15 +01:00
aiju b677ab0c59 remove dunning-krugerrand code 2015-11-20 22:26:20 +01:00
cinap_lenrek c184d2602d 5c: handle (rare) MULU instruction in peephole optimizer 2015-11-01 12:09:03 +01:00
BurnZeZ 4587326e76 ascii: replace mnemonic np (new page) with ff (form feed) for consistency 2015-10-25 14:46:10 -04:00
BurnZeZ 8f27b8d04d rio: fix scrolling when cursor is above window 2015-10-24 22:57:07 -04:00
cinap_lenrek 13213681c9 aux/listen1: usage() 2015-10-10 00:11:03 +02:00
cinap_lenrek 47682ee42a aux/listen1: allow alternative namespace when running as user none with -n option 2015-10-10 00:09:02 +02:00
cinap_lenrek bab31af707 cwfs: fix wstat() failing to mark block dirty when noatime is set
code assumed the accessdir() call would always mark the block dirty, but
this is not the case when noatime flag is enabled. this was reported by
michael in bug:

"open/with_noatime_option_cwfs_doesnt_preserve_changes_in_file_permissionowner"

--
cinap
2015-10-09 19:22:53 +02:00
cinap_lenrek 2598a9e312 cc: restore side(), but do not consider OINDEX as side effect free
from charles forsuth:

because the previous version thought OINDEX might have a side effect, it
stopped it building a tower of them.
probably the best thing is to limit that anyway, since each one consumes
2-3 registers, so towering them can
keep even more active, and the x86 hasn't got that many.

the quick hack is to return that case to the earlier state by treating
OINDEX as a side-effect in side().
it's not a bad thing to do in the OSTRUCT case, for similar reasons: it's
better to collapse the indexed pointer
into a direct register, instead of repeating the indexing operation through
the copying of the value.
OINDEX isn't a machine-independent operation, so it doesn't affect the uses
in ../cc
2015-10-08 17:14:07 +02:00
cinap_lenrek fa1f9f7ca6 cc: back out side() change unil 8c is fixed
this change made 8c fail to build libvorbis and gs, until this
is fixed we can live with non-optimal code.
2015-10-07 13:35:36 +02:00
cinap_lenrek 7c7acbef31 qc: import changes from charles forsyth 2015-10-07 09:40:48 +02:00
cinap_lenrek 4a916ba86e kc: import various changes from charles forsyth 2015-10-06 06:55:05 +02:00
cinap_lenrek fe3430ea99 cc: include $builtin as keywoard in pickle() (from charles forsyth) 2015-10-06 06:47:55 +02:00
cinap_lenrek 37d2856f55 cc: getflag() fmt will be terminated at end of loop (from charles forsyth) 2015-10-06 06:38:37 +02:00
cinap_lenrek 651b2a32be cc: allow runes as macro names (from charles forsyth) 2015-10-06 06:34:30 +02:00
cinap_lenrek 2d59b15c39 5c/6c/8c/vc: import various changes from charles forsyth
- cover more cases that have no side effects
- ensure function has complex FNX
- pull operators out of OFUNC level
- rewrite OSTRUCT lhs to avoid all side-effects, use regalloc() instead of regret()
2015-10-06 06:20:01 +02:00
cinap_lenrek 99ddc5b097 cc: TUSHORT -> TRUNE for lstring constats for OUSED 2015-10-06 05:20:00 +02:00
cinap_lenrek b33f4c0301 9660srv: do not ignore upper 32 bits of offset when reading directory 2015-10-05 04:45:32 +02:00
cinap_lenrek 0e09795831 dossrv: handle file offsets > 2^31
maximum file size is 4GB-1 as the file length is stored in
a 32 bit long. make sure it doesnt overflow on write or
or truncate. interpret the file length as unsigned. pass
vlong to readfile()/writefile()/truncfile() so we can
handle overflows and not just ignore the upper bits.
2015-10-05 04:31:31 +02:00
cinap_lenrek ec51877698 6c: remove 6c/vlrt.c file 2015-10-04 22:12:16 +02:00
cinap_lenrek 36876b9522 8c: dont abort() when running out of registers. 2015-10-04 22:09:36 +02:00
cinap_lenrek a23d7cdb84 vc: fix mistake. 2015-10-04 21:22:17 +02:00
cinap_lenrek b556e87e08 vc: handle 64 bit mixedmode asop 2015-10-04 20:08:10 +02:00
cinap_lenrek 8e41723741 5c: handle 64 bit mixedmode asop 2015-10-04 20:07:34 +02:00
cinap_lenrek e6d64bab9d 8c: handle 64 bit mixedmode asop and type vlong <-> float/double type conversions 2015-10-04 20:06:59 +02:00
cinap_lenrek 107ca1b42d cc: handle 64 bit mixedmode asop and type vlong <-> float/double type conversions 2015-10-04 20:06:30 +02:00
cinap_lenrek bfd0cb0db4 cc/6c: fix return type of mixed asop expressions, preserve type for moves so fixed<->float conversions work correctly 2015-10-04 20:02:58 +02:00
cinap_lenrek 9124e491e5 merge 2015-10-03 12:19:31 +02:00
cinap_lenrek 74a557a167 8c: make cgen64() compile target first when it contains functoin call so final assignment wont trash the registers 2015-10-03 12:18:20 +02:00
aiju a7b06e0fdd timepic: string support 2015-09-29 20:49:28 +02:00
BurnZeZ 695f0e0694 aux/gpsfs: fix usage 2015-09-29 04:08:42 -04:00
BurnZeZ ed196fcb7e file: detect DICOM and XM audio headers 2015-09-28 03:42:26 -04:00
aiju 920783505c add timepic(1) 2015-09-27 13:50:18 +02:00
cinap_lenrek ffe4844da8 cwfs: various cleanups
- consistently refer to Dentry.name length with NAMELEN
- make sure whoname is null terminated
- remove useless nil check for whoname
2015-09-26 11:44:29 +02:00
cinap_lenrek 76e0968e35 cwfs: don't use sprint() to fill directory name
sprint() will replace invalid utf8 sequences with U+FFFD
which caused directory reads and stats to return the wrong
filename. just strcpy the name bytes.
2015-09-26 11:41:31 +02:00
cinap_lenrek 917da0089d cpp: handle 4 byte utf sequences (21-bit runes) 2015-09-24 12:23:17 +02:00
cinap_lenrek bba6d26ca2 cpp: fix memory corruption due to input buffer relocation
the dynamic input buffer resize code (fillbuf()) is broken as
the calling code assumes that memory wont relocate. instead
of trying to work out all the cases where this happens, i'm
getting rid of fillbuf() and just read the whole file into
memory in setsource().

the bug could be reproduced with something as simple as:

@{for(i in `{seq 1 10000}){echo $i ', \'; }} | cpp
2015-09-24 05:13:03 +02:00
glenda 2b5ab91775 resize: add -n for nearest neighbour 2015-09-23 17:52:35 +02:00
cinap_lenrek fa95531388 merge 2015-09-23 17:35:16 +02:00
cinap_lenrek 5639f9504b rsa2x509, rsa2csr: add newline in usage print 2015-09-23 17:05:48 +02:00
glenda d6c35b3de8 add qr.c 2015-09-23 16:36:55 +02:00
cinap_lenrek c878be04f9 scuzz: uncomment synccache command 2015-09-22 12:23:49 +02:00
cinap_lenrek 83d45ee502 mothra: <hr> drawing
<hr> is handled by drawing replicated bitmap across the with of
the page.
2015-09-22 11:49:07 +02:00
cinap_lenrek cb083221d2 igfx: fix typos (thanks qwx) 2015-09-14 15:15:14 +02:00
cinap_lenrek c06e464ec4 cwfs: initialize /env/timezone on boot so dumps are in localtime
when /env/timezone file is missing (boot case), copy /adm/timezone/local
to /env/timezone so localtime() can correct timezone offset.
2015-09-12 03:58:46 +02:00
cinap_lenrek 20ea629b8a html2ms: bold table headings, remove wrong tag space handling 2015-09-08 19:55:55 +02:00
cinap_lenrek d79754b4c8 mothra: make text inside <td> bold 2015-09-08 19:23:23 +02:00
cinap_lenrek b143c1f411 tar: remove unneccesary { } 2015-09-08 18:30:38 +02:00
cinap_lenrek c7eae3fb72 tar: make z flag work, even when no file name was provided (thanks aiju)
tar used to infer compression type from the filenames extension, but when
no file name is given (stdin/stdout), the -z flag was ignored and no
compression filter applied. this changes tar to assume the default
gzip compression method when z is given and no file name is specified.
2015-09-08 18:27:48 +02:00
cinap_lenrek 4d4b825dea mothra: add missing initializations for plaintext html state 2015-09-07 00:13:40 +02:00
cinap_lenrek b9eb7258bd html2ms: handle subscripts and superscripts 2015-09-03 21:24:00 +02:00
cinap_lenrek 72a5fbd8ea mothra: subscript and superscript support 2015-09-03 19:07:48 +02:00
cinap_lenrek c8dd01d5f6 auth/passwd: fix structure zeroing order 2015-09-02 11:41:41 +02:00
cinap_lenrek b749f36baa libsec: generalize pbkdf2_hmac_sha1() to pbkdf2_x() passing the hmac as an argument 2015-09-02 11:28:11 +02:00
mischief 2dec35524e tput: check sbrk return value 2015-08-25 03:06:36 -07:00
glenda c4fdc6bfdb fix fuckup 2015-08-25 09:35:10 +00:00
mischief 6b402b83cf import E script from bell labs 2015-08-25 02:07:46 -07:00
cinap_lenrek 54a91861df remove convkeys2 2015-08-22 00:21:11 +02:00
cinap_lenrek b83dd93e98 init: remove dependency to <authsrv.h> 2015-08-21 23:40:31 +02:00
cinap_lenrek d24610fe38 tapefs: remove dependency to <authsrv.h> 2015-08-21 23:38:56 +02:00
cinap_lenrek 69dd87eb63 remove srvold9p 2015-08-21 23:23:35 +02:00
cinap_lenrek 61e9d23eb2 cpu, import: remove old9p support 2015-08-21 23:22:59 +02:00
cinap_lenrek c6a9cbb071 cmd/auth: remove private /dev/random reading routines, use genrandom() 2015-08-21 22:46:26 +02:00
cinap_lenrek 809522e80f auth/changeuser: set the aes key in plan9 database, but not in securenet db 2015-08-21 20:36:19 +02:00
cinap_lenrek f6dbd3d993 keyfs: fix typo (thanks jpm) 2015-08-21 20:11:11 +02:00
cinap_lenrek 77e279201d remove kfs and kfscmd 2015-08-21 19:52:57 +02:00
cinap_lenrek 46a7876d32 disk/mkfs: rmeove kfs support 2015-08-21 19:32:48 +02:00
cinap_lenrek 0ce50ebc57 cwfs: remove 9p1 support 2015-08-21 18:43:25 +02:00
cinap_lenrek 501774b096 authsrv: randomize aes key in mkkey(), not used yet. 2015-08-21 03:32:05 +02:00
cinap_lenrek c3487a4b49 authsrv: more aes key stuff 2015-08-21 03:16:50 +02:00
cinap_lenrek 63b18e7925 introduce AES key into nvram and keyfs 2015-08-21 02:43:31 +02:00
cinap_lenrek e48a5832b2 kfs: adjust to new libauthsrv 2015-08-20 20:56:00 +02:00
cinap_lenrek 167ea748f8 cwfs: adjust for new libauthsrv changes 2015-08-20 20:44:17 +02:00
cinap_lenrek a40c4006d2 libsec: add pbkdf2_hmac_sha1() (from wpapsk factotum module) 2015-08-20 00:45:08 +02:00
cinap_lenrek 02cfcfeab4 libauthsrv: generalize ticket service, not hardcoding ticket format and DES encryption
this is in preparation for replacing DES ticket encryption with
something better. but first need to make the code stop making
assumptions.

the wire encoding of the Ticket might be variable length
with TICKETLEN just giving an upper bound. the details will be
handled by libauthsrv _asgetticket() and _asgetresp() funciotns.

the Authenticator and Passwordreq structures are encrypted
with the random ticket key. The encryption schmeme will depend
on the Ticket format used, so we pass the Ticket* structure
instead of the DES key.

introduce Authkey structure that will hold all the required
cryptographic keys instead of passing DES key.
2015-08-19 21:06:17 +02:00
mischief f785d4da07 aux/statusbar: use title as rio window title (thanks qrstuv) 2015-08-18 01:24:22 -07:00
cinap_lenrek 70a7ae9929 cc: improve (non-) side effect detection (thanks charle) 2015-08-17 02:07:27 +02:00
cinap_lenrek 988d326f32 vc: word align automatics
theres code that assumes one can dereference a char[] buffer on the stack
as a long (ghostscript gxblend.c), so make sure all automatics on the stack
are word aligned. this is not strictrly neccesary, but avoids some
trouble with unportable code.
2015-08-16 19:29:16 +02:00
cinap_lenrek 2fe2ffe813 gs: fix alignment bug in image_render_interpolate() 2015-08-16 18:20:22 +02:00
cinap_lenrek cf74c80e7b 6l: fix vlong byte order when running on big endian machine (thanks erik quanstro) 2015-08-16 13:41:14 +02:00
cinap_lenrek f1efd09bbb mothra: fix crash 2015-08-16 03:19:05 +02:00
cinap_lenrek 5e07e5840a cpu: cleanup ssl code, make sure -p works for any auth method 2015-08-16 01:47:10 +02:00
cinap_lenrek 592b8d5b35 hjfs: fix deadlocks
buffers which still have requests queued on them are not free!

we cannot chanedev() a buffer while it has still requests queued on it
and we canot just queue our request (having different address) on the
buffer while there are other requests before it, otherwise we would
create artificial block dependency that can cause deadlock.
2015-08-13 10:41:12 +02:00
cinap_lenrek 8c4bb53bdc hjfs: fix abort() in givebuf()
it is possible for another getbuf() on buffer b to come in
before undelayreq() calls givebuf() on a buffer again. then
givebuf() would find b already busy and abort().

instead, we now handle what getbuf() did in givebuf() and
consider the Buf* argument to givebuf() as a hint only for
the case when we have to actually flush/read a block from
disk.
2015-08-11 17:56:06 +02:00
cinap_lenrek 23742053f5 mount, srv: add -N flag to skip authentication and attach anonymously as "none" 2015-08-10 10:11:45 +02:00