Commit graph

6440 commits

Author SHA1 Message Date
cinap_lenrek
a0acae173e libmemdraw: remove static Point p00 and use ZP instead 2019-03-09 17:36:19 +01:00
cinap_lenrek
5a724464d9 libmemdraw: handle memarc() phi == 0 and phi <= -360, keep alpha in bounds 2019-03-09 17:34:22 +01:00
cinap_lenrek
c7b2ca5716 merge 2019-03-07 22:41:42 +01:00
cinap_lenrek
4b8f7a2110 devip: ignore the evil bit in fragment info field
using ~IP_DF mask to select offset and "more fragments" bits
includes the evil bit 15. so instead define a constant IP_FO
for the fragment offset bits and use (IP_MF|IP_FO). that way
the evil bit gets ignored and doesnt cause any useless calls
to ipreassemble().
2019-03-07 22:39:50 +01:00
mischief
c0383d8291 mach(2): fix byteswapping function signatures 2019-03-06 19:10:58 -08:00
mischief
617bf42890 vmx: check for draw initialization errors 2019-03-06 19:10:48 -08:00
cinap_lenrek
4885c75526 devip: ignore icmp advise about laggard fragments
icmp has to advise protocols about the first
fragment only. all other fragments should be
ignored.
2019-03-07 01:25:11 +01:00
qwx
b7525d1ed8 igfx: add support for 915gm
tested on a t43 with igfx and a 1600x1200 t43p screen
what works: lvds, blanking
what doesn't: hwgc (not visible), snarfing edid
untested: vga

based on realemu traces.
2019-03-04 21:37:52 +01:00
cinap_lenrek
14da3b8a1f ip/tinc: honor TcpOnly and IndirectData settings, script support, prefer incoming udp connections
only try listen/dial on udp when IndirectData/TcpOnly is not
enabled.

add support for scipts:
 host-up
 host-down
 tinc-up
 tinc-down
 subnet-up
 subnet-down

when dialing udp connection, only switch when there is no
other udp connection active. when we receive an authenticated
message, we switch to that connection immidiately.
2019-03-04 20:29:33 +01:00
cinap_lenrek
57284d07ca devip: ignore reserved fragment offset bits 2019-03-04 12:07:40 +01:00
cinap_lenrek
e2d310e623 devip: handle packet too big advise for icmp6, remove fragment header 2019-03-04 03:13:29 +01:00
cinap_lenrek
2af6b08960 devip: use common code in icmp for handling advise 2019-03-04 03:09:39 +01:00
cinap_lenrek
827020f686 devip: zero fragment offset after reassembly, remove tos magic, cleanup 2019-03-04 03:08:27 +01:00
cinap_lenrek
a1fceabd5b devip: fix fragment forwarding
unfraglen() had the side effect that it would always copy the
nexthdr field from the fragment header to the previous nexthdr
field. this is fine when we reassemble packets but breaks
fragments that we want to just forward unchanged.
2019-03-04 03:05:30 +01:00
cinap_lenrek
fa97c3dd10 devip: simplify ip reassembly functions, getting rid of Ipfrag.hlen
given that we now keep the block size consistent with the
ip packet size, the variable header part of the ip packet
is just: BLEN(bp) - fp->flen == fp->hlen.

fix bug in ip6reassemble() in the non-fragmented case:
reload ih after ip header was moved before writing ih->ploadlen.

use concatbloc() instead of pullupblock().
2019-03-03 18:56:18 +01:00
cinap_lenrek
a859f05837 devip: fix block list handling for icmp/icmp6, use proper MinAdvise for icmp6 2019-03-03 09:01:23 +01:00
cinap_lenrek
a2c0e55e68 qio: handle common case in trimblock() 2019-03-03 05:26:09 +01:00
cinap_lenrek
5b972a9aea devip: fix ip fragmentation handling issues with header options
some protocols assume that Ip4hdr.length[] and Ip6hdr.ploadlen[]
are valid and not out of range within the block but this has
not been verified. also, the ipv4 and ipv6 headers can have variable
length options, which was not considered in the fragmentation and
reassembly code.

to make this sane, ipiput4() and ipiput6() now verify that everything
is in range and trims to block to the expected size before it does
any further processing. now blocklen() and Ip4hdr.length[] are conistent.

ipoput4() and ipoput6() are simpler now, as they can rely on
blocklen() only, not having a special routing case.

ip fragmentation reassembly has to consider that fragments could
arrive with different ip header options, so we store the header+option
size in new Ipfrag.hlen field.

unfraglen() has to make sure not to run past the buffer, and hadle
the case when it encounters multiple fragment headers.
2019-03-03 05:25:00 +01:00
cinap_lenrek
0aac600fb3 lib9p: fix zero msize abort() due to unknown version (thanks kivik)
kivik wrote:

I've found a nasty bug in lib9p handling of Tversion
messages, where an invalid version string in the request
leads to servers abort()ing the spaceship.

To reproduce:
	; ramfs -S ram
	; aux/9pcon /srv/ram
	Tversion ~0 DIE

The issue lies in sversion() where in case an invalid
version string is received we respond right away with
ofcall.version="unknown"; however, we fail to set the
ofcall.msize, which at this point is cleared to 0.  This
causes the convS2M call in respond() to fail and abort being
called.
2019-03-01 01:43:55 +01:00
cinap_lenrek
967b1248f8 libip: move optimized 386 assembly version of ptclbsum() from kernel to libip 2019-02-27 18:29:08 +01:00
cinap_lenrek
88ccea37f6 kernel: remove ptclbsum dependencies from configs 2019-02-27 08:47:17 +01:00
cinap_lenrek
242403d9f9 pi, pi2: remove ptclbsum dependency from config 2019-02-27 08:38:19 +01:00
cinap_lenrek
b76a78c1a1 cwfs: fix %.*s format in cmd_printconf() 2019-02-25 04:36:37 +01:00
cinap_lenrek
66ab4ac223 pc, pc64: fix %.*s format in multibootargs 2019-02-25 04:25:36 +01:00
cinap_lenrek
96d6f44335 wifi: fix %.*s format in wifictl 2019-02-25 04:22:03 +01:00
cinap_lenrek
4de506404b abaco: fix %.*s format in findctype() 2019-02-25 04:20:43 +01:00
cinap_lenrek
980d64826e atazz: fix %.*s format in special command processing 2019-02-25 04:20:00 +01:00
cinap_lenrek
b4b4d2286b aux/depend: fix %.*s format in path concatenation 2019-02-25 04:18:30 +01:00
cinap_lenrek
bc5b85c37c aux/statusmsg: fix %.*s format 2019-02-25 04:17:19 +01:00
cinap_lenrek
28bcea12aa aux/wpa: fix %.*s format in debug prints 2019-02-25 04:16:48 +01:00
cinap_lenrek
5d58b9573c cc: fix %.*s format usage in lexer "token too long" error 2019-02-25 04:15:43 +01:00
cinap_lenrek
ac3e3c342f hgfs: fix %.*s usage in walk 2019-02-25 04:08:13 +01:00
cinap_lenrek
a7ab815839 ip/cifsd: fix %.*s format xdirflush() path 2019-02-25 03:53:09 +01:00
cinap_lenrek
80b1890093 ip/ppp: fix %.*s format in debug print 2019-02-25 03:52:05 +01:00
cinap_lenrek
cb8ef42b55 ip/pppoe: fix %.*s format in debug prints 2019-02-25 03:51:19 +01:00
cinap_lenrek
b01b637889 ip/socksd: fix %.*s format in dialstring 2019-02-25 03:50:14 +01:00
cinap_lenrek
80a1d1ab93 ip/tftpd: fix %.*s format for homedir path 2019-02-25 03:49:17 +01:00
cinap_lenrek
1335a57865 ip/torrent: fix %.*s format in dialstring 2019-02-25 03:48:12 +01:00
cinap_lenrek
bcaf95bb5a libpanel: fix %.*s format in pl_snarfentry() 2019-02-25 03:45:49 +01:00
cinap_lenrek
a37402be19 nusb/audio: fix %.*s format usage 2019-02-25 03:41:10 +01:00
cinap_lenrek
5ec91a6413 upas/fs: fix %.*s format usage 2019-02-25 03:39:31 +01:00
cinap_lenrek
2e5cd278d7 upas/ned: fix %.*s format in parsesearch(), improve mkfile 2019-02-25 03:34:25 +01:00
cinap_lenrek
536805bce3 upas/scanmail: fix %.*s format in xprint(), improve mkfile 2019-02-25 03:31:50 +01:00
cinap_lenrek
e3aee39a38 upas/smtp: fix %.*s format for challenge in smtpcram()
the challenge should already be in ASCII format,
but better safe than sorry.
2019-02-25 03:29:19 +01:00
cinap_lenrek
3043052e24 vt: fix %.*s in sendncars() 2019-02-25 03:25:36 +01:00
cinap_lenrek
e1dcd2beb4 webfs: properly handle %.*s in url path and debug prints 2019-02-25 03:21:09 +01:00
cinap_lenrek
05227960c6 ssh: don't assume error messages are ASCII. format number of complete runes, not bytes. 2019-02-25 01:19:44 +01:00
cinap_lenrek
cce5422e79 ip/tinc: fix mistake from previous commit 2019-02-15 02:16:31 +01:00
cinap_lenrek
dc6772fccc libip: prefer v4 over v6 for myipaddr()
myipaddr() is used in legacy applications that assume a
single ip address per host. so prefer to retun a v4
address over a v6 one.
2019-02-13 18:56:21 +01:00
cinap_lenrek
06912e53e4 devip: remove unused eipconvtet.c and ptclbsum.c files 2019-02-13 17:42:20 +01:00