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
cinap_lenrek
57ed5cc3f0
devip: ipv6 loopback ::1 has link-local scope
2019-02-13 08:46:49 +01:00
cinap_lenrek
cf5095143f
merge
2019-02-13 04:47:29 +01:00
cinap_lenrek
c0176a5051
ip/ipconfig: format ipmask with %M instead of %I
2019-02-13 04:45:41 +01:00
BurnZeZ
ffdbfdf991
postscript: use PI
2019-02-13 03:24:31 +00:00
cinap_lenrek
0ed8f6ff5f
libip: don't reject ipmask in v6 form for v4 address
2019-02-13 04:04:33 +01:00
cinap_lenrek
45213ee6c7
ip/ipconfig, ndb/dns, libndb: handle parseipmask() errors
2019-02-12 21:44:57 +01:00
cinap_lenrek
d551a83ae4
libip: return -1 in parseipmask() and parseipandmask() when mask is not ipv4 and v4 argument was set
2019-02-12 21:43:22 +01:00
cinap_lenrek
7102a23245
devip: use parseipandmask() for ipifc and route control message parsing
2019-02-11 23:43:14 +01:00
cinap_lenrek
b1c9ddb3f0
ndb/dns: provide v4 argument to parseipmask(), use snprint() instead of sprint()
2019-02-11 23:42:15 +01:00
cinap_lenrek
fd277c053d
upas/smtpd: implement ipv6 support for ip blacklist, replace v4parsecidr() with parseipandmask()
2019-02-11 23:40:34 +01:00
cinap_lenrek
50e617f8b6
ratfs: implement ipv6 support, replace v4parsecidr() with parseipandmask()
2019-02-11 23:38:58 +01:00
cinap_lenrek
168dabc142
ip/rip: use new parseipandmask() function
2019-02-11 23:36:29 +01:00
cinap_lenrek
595fbddb1c
ip/ayiya: use parseipandmask(), use ipvmp() instead of equivip6()
2019-02-11 23:34:26 +01:00
cinap_lenrek
97d45a5468
ip/6in4: use parseipandmask(), use ipvmp() instead of equivip6()
2019-02-11 23:33:44 +01:00