miod [Fri, 18 Apr 2014 18:33:18 +0000 (18:33 +0000)]
typo
beck [Fri, 18 Apr 2014 18:25:04 +0000 (18:25 +0000)]
It seems a generation of programmers is aping OpenSSL. We need re-education
camps. RAND_ is considered hamful, we should not *re-implement* it here.
"fire bomb it" - tedu@, "dresdenizing" - beck@, "SSLaughterhouse five" miod@
lteo [Fri, 18 Apr 2014 18:08:36 +0000 (18:08 +0000)]
Use the cleaned up asprintf-based make_config_name() to make the name of
the config file instead of the malloc/BUF_strlcpy/BUF_strlcat calls with
no return value checks (that make_config_name() also used to do prior to
being cleaned up).
ok beck@
tedu [Fri, 18 Apr 2014 18:08:36 +0000 (18:08 +0000)]
first round of static config. ok miod
lteo [Fri, 18 Apr 2014 18:07:59 +0000 (18:07 +0000)]
Check the return value of make_config_name() before attempting to use
the config filename.
ok beck@
tedu [Fri, 18 Apr 2014 18:03:26 +0000 (18:03 +0000)]
another
tedu [Fri, 18 Apr 2014 18:01:06 +0000 (18:01 +0000)]
another "string to make the random number generator think it has entropy"
tedu [Fri, 18 Apr 2014 17:44:24 +0000 (17:44 +0000)]
delete "string to make the random number generator think it has entropy"
miod [Fri, 18 Apr 2014 17:32:31 +0000 (17:32 +0000)]
Put back i2d_ASN1_SET() and d2i_ASN1_SET() from the NO_ASN1_OLD prune, as there
are still some 3rd-party code using it, and fixing them is not trivial.
As an excuse gift, the memory leaks on failure in resurrected a_set.c have
been fixed.
beck [Fri, 18 Apr 2014 17:25:17 +0000 (17:25 +0000)]
RAND_xxx considered harmful. use arc4random_buf instead of nasty stuff.
ok tedu@
florian [Fri, 18 Apr 2014 17:01:47 +0000 (17:01 +0000)]
Wrap long lines.
OK lteo@, benno@
florian [Fri, 18 Apr 2014 17:01:06 +0000 (17:01 +0000)]
Move ident / perturb initialisation up, this is AF independent.
OK benno@
florian [Fri, 18 Apr 2014 17:00:07 +0000 (17:00 +0000)]
sync to traceroute6: use getnameinfo for destination ip
OK benno@
florian [Fri, 18 Apr 2014 16:58:02 +0000 (16:58 +0000)]
Declare socklen_t len in main, it's used in two places, no need
to declare it twice. We can get rid of a { } block.
OK benno@
florian [Fri, 18 Apr 2014 16:56:25 +0000 (16:56 +0000)]
Replace fprintf(stderr, ..); exit() with errx() and fprintf(stderr, ...)
with warnx()
OK lteo@, benno@
florian [Fri, 18 Apr 2014 16:48:19 +0000 (16:48 +0000)]
Drop rh0 support (-g), it doesn't work anyway.
OK benno@
florian [Fri, 18 Apr 2014 16:46:18 +0000 (16:46 +0000)]
Use getaddrinfo to resolve destination. I kept the inet_aton so the
great old ones can still traceroute 010.010.010.010.
OK benno@
beck [Fri, 18 Apr 2014 16:40:46 +0000 (16:40 +0000)]
RAND_egd is considered harmful. Unbreak the tree by making kerberos not use
it. The rest of the RAND_ horror in here needs checking.
ok deraadt@
claudio [Fri, 18 Apr 2014 16:38:28 +0000 (16:38 +0000)]
Introduce some regress tests against our routing table. At least that way
there is a chance that we do not break the network stack even more.
These regress tests already found a few issues.
The framework is ugly and does not properly recover from failures. Somebody
more skilled can come up with a better solution.
mpi@, blambert@ and sthen@ support this
deraadt [Fri, 18 Apr 2014 16:36:42 +0000 (16:36 +0000)]
this file is not relevant
florian [Fri, 18 Apr 2014 16:33:21 +0000 (16:33 +0000)]
We do have SO_SNDBUF.
OK benno@
florian [Fri, 18 Apr 2014 16:32:42 +0000 (16:32 +0000)]
We do have SO_SNDBUF and IP_HDRINCL.
OK benno@
florian [Fri, 18 Apr 2014 16:29:26 +0000 (16:29 +0000)]
replace perror(3) with err(3)/warn(3)
OK lteo@, benno@
florian [Fri, 18 Apr 2014 16:26:47 +0000 (16:26 +0000)]
Structure wait_for_reply() loop like traceroute, thereby moving the
loop body one indent layer up.
OK benno@
florian [Fri, 18 Apr 2014 16:24:41 +0000 (16:24 +0000)]
move cast from packet to ip up to avoid casts in print()
OK benno@
florian [Fri, 18 Apr 2014 16:23:00 +0000 (16:23 +0000)]
move ICMP6 code parsing to function
OK benno@
florian [Fri, 18 Apr 2014 16:22:18 +0000 (16:22 +0000)]
move ICMP code parsing to function
OK benno@
florian [Fri, 18 Apr 2014 16:20:56 +0000 (16:20 +0000)]
sync to traceroute:
* s/Dst/to/
* s/Src/from/
* drop Rcv
OK benno@
florian [Fri, 18 Apr 2014 16:19:11 +0000 (16:19 +0000)]
If -s is not given do a dummy connect to get outgoing ip,
unconditionally try to bind to this ip and get a source port for udp
this way, like traceroute6 is doing. This means you can no longer
traceroute from IPs not present on the system. (There are probably
better tools if you want to send traffic from spoofed IPs.)
OK benno@
reyk [Fri, 18 Apr 2014 16:13:02 +0000 (16:13 +0000)]
fix previous
florian [Fri, 18 Apr 2014 16:11:36 +0000 (16:11 +0000)]
Sync to tracroute: don't print source IP if -s is not given
OK benno@ (who wants it back in some form after the merge)
tedu [Fri, 18 Apr 2014 16:11:22 +0000 (16:11 +0000)]
guenther would prefer more separation
reyk [Fri, 18 Apr 2014 16:08:06 +0000 (16:08 +0000)]
spacing
florian [Fri, 18 Apr 2014 16:07:54 +0000 (16:07 +0000)]
Sync to tracroute: handle "time exceeded in transit" before the
switch and add a default case.
OK benno@
florian [Fri, 18 Apr 2014 16:04:39 +0000 (16:04 +0000)]
sync packet_ok signature to traceroute6
OK benno@
florian [Fri, 18 Apr 2014 16:02:08 +0000 (16:02 +0000)]
sync to traceroute: s/opacket/packetdata/
OK lteo@, benno@
florian [Fri, 18 Apr 2014 16:00:38 +0000 (16:00 +0000)]
Embed struct tv32 into struct opacket like traceroute.
This changes the data part of an icmp6 paket, before it only
contained the timestamp, now it contains a whole struct opacket.
Shouldn't be an issue as nobody looks at this data anyway.
OK benno@
tedu [Fri, 18 Apr 2014 15:59:36 +0000 (15:59 +0000)]
Malak: I think we made the merchant angry.
Conan: Are you surprised?
Malak: But we didn't steal everything he had!
Conan: We didn't have time.
florian [Fri, 18 Apr 2014 15:58:43 +0000 (15:58 +0000)]
Factor out build_probe{4,6} from send_probe; now send_probe is
AF independent. While there define outpacket as u_char and
cast as needed in traceroute6.
OK benno@
deraadt [Fri, 18 Apr 2014 15:58:18 +0000 (15:58 +0000)]
sync
tedu [Fri, 18 Apr 2014 15:57:12 +0000 (15:57 +0000)]
millert said i can kill rshd
tedu [Fri, 18 Apr 2014 15:53:49 +0000 (15:53 +0000)]
we need to crank
reyk [Fri, 18 Apr 2014 15:53:28 +0000 (15:53 +0000)]
Fix SSL client-only mode when no RSA private key is needed.
Found by andre@ with the args-ssl-server.pl regress test.
ok andre@
deraadt [Fri, 18 Apr 2014 15:53:24 +0000 (15:53 +0000)]
remove include files not needed
guenther [Fri, 18 Apr 2014 15:46:50 +0000 (15:46 +0000)]
Document support for "openssl s_client -starttls lmtp"
guenther [Fri, 18 Apr 2014 15:39:53 +0000 (15:39 +0000)]
Finish zapping SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION usage; only keep
the #define for compat, but document that it's a no-op now. Also, neuter
the -legacy_renegotiation option to "openssl s_{client,server}"
ok beck@
deraadt [Fri, 18 Apr 2014 15:38:16 +0000 (15:38 +0000)]
use the portable construct around asprintf; pointed out by halex
henning [Fri, 18 Apr 2014 15:20:00 +0000 (15:20 +0000)]
reaching into altq outside #ifdef ALTQ is bad, mmkay? ok claudio
henning [Fri, 18 Apr 2014 15:14:25 +0000 (15:14 +0000)]
tcp_respond: let the stack worry about the cksum instead of doing it
manually, ok naddy (in january)
henning [Fri, 18 Apr 2014 15:13:01 +0000 (15:13 +0000)]
pf_send_tcp: ask the stack to do the cksum instead of doing it manually
ok benno lteo naddy (back in january)
guenther [Fri, 18 Apr 2014 15:09:52 +0000 (15:09 +0000)]
It's been a quarter century: we can assume volatile is present with that name.
tedu [Fri, 18 Apr 2014 15:03:20 +0000 (15:03 +0000)]
Some dude named Tavis Ormandy reported a bug which has gone unfixed.
http://marc.info/?l=openssl-users&m=
138014120223264&w=2
Arguably a doc bug, but we argue not. If you parse a new cert into memory
occupied by a previously verified cert, the new cert will inherit that
state, bypassing future verification checks. To avoid this, we will always
start fresh with a new object.
grudging ok from guenther, after i threatened to make him read the code yet
again. "that ok was way more painful and tiring then it should have been"
henning [Fri, 18 Apr 2014 14:56:59 +0000 (14:56 +0000)]
reaching into altq unconditionally (and w/o ifdef ALTQ) is bad, mmkay?
deraadt [Fri, 18 Apr 2014 14:41:54 +0000 (14:41 +0000)]
since e_os.h is dead, and e_os2.h is installed, we can fetch from there.
This means we don't need the reach-around anymore.
guenther [Fri, 18 Apr 2014 14:38:21 +0000 (14:38 +0000)]
It's been a quarter century: we can assume volatile is present with that name.
deraadt [Fri, 18 Apr 2014 14:37:41 +0000 (14:37 +0000)]
Put the final pieces from e_os.h in the required places, and remove it.
"dance on it's grave" says beck
ok guenther beck
henning [Fri, 18 Apr 2014 14:34:24 +0000 (14:34 +0000)]
cut altq here
tedu [Fri, 18 Apr 2014 14:34:07 +0000 (14:34 +0000)]
blank lines between decls and code
reyk [Fri, 18 Apr 2014 14:32:22 +0000 (14:32 +0000)]
The RSA_FLAG_SIGN_VER is not yet supported and the current code uses
the rsa_priv_enc() and rsa_pub_dec() callbacks for sign and verify
operations.
A tale from OpenSSL's rsa.h:
New sign and verify functions: some libraries don't allow arbitrary
data to be signed/verified: this allows them to be used. Note: for
this to work the RSA_public_decrypt() and RSA_private_encrypt() should
*NOT* be used RSA_sign(), RSA_verify() should be used instead. Note:
for backwards compatibility this functionality is only enabled if the
RSA_FLAG_SIGN_VER option is set in 'flags'.
In OpenSSL, RSA engines should provide the rsa_sign() and rsa_verify()
callbacks and this should be the default. By the "default" is
disabled by default and RSA engines that provide extra sign and verify
callbacks have to set the non-default RSA_FLAG_SIGN_VER flag. This is
not used by OpenSSL's own RSA code and was only set by two non-default
RSA engines: IBM 4758 and Windows CAPI - both of them got removed from
our library. And btw., this comment about the new non-default default
was added in 1999.
Thanks to Piotr Sikora, who pointed out that I didn't handle the
sign/verify case.
schwarze [Fri, 18 Apr 2014 14:25:52 +0000 (14:25 +0000)]
We should probably thank OpenSSL.
They gave Theo another chance to be happy.
deraadt [Fri, 18 Apr 2014 14:05:01 +0000 (14:05 +0000)]
These files were never installed in the past, and are not generally
used. They can go away.
ok guenther reyk
reyk [Fri, 18 Apr 2014 13:55:26 +0000 (13:55 +0000)]
Introduce privsep for private keys:
- Move RSA private keys to a new separate process instead of copying
them to the relays. A custom RSA engine is used by the SSL/TLS code
of the relay processes to send RSA private key encryption/decryption
(also used for sign/verify) requests to the new "ca" processes instead
of operating on the private key directly.
- Each relay process gets its own related ca process. Setting
"prefork 5" in the config file will spawn 10 processes (5 relay, 5
ca). This diff also reduces the default number of relay processes
from 5 to 3 which should be suitable in most installations without a
very heavy load.
- Don't keep text versions of the keys in memory, parse them once and
keep the binary representation. This might still be the case in
OpenSSL's internals but will be fixed in the library.
This diff doesn't prevent something like "heartbleed" but adds an
additional mitigation to prevent leakage of the private keys from the
processes doing SSL/TLS.
With feedback from many
ok benno@
deraadt [Fri, 18 Apr 2014 13:41:20 +0000 (13:41 +0000)]
Use asprintf() for generating path, instead of multiple
return-value-not-checked strlcpy and strlcat
deraadt [Fri, 18 Apr 2014 13:38:31 +0000 (13:38 +0000)]
in CONF_get1_default_config_file(), don't calculate a buffer size,
malloc it, do unbounded strlcpy's to it... but instead of asnprintf.
While there, let's put a '/' between the two path components! Wonder
how old that bug is..
ok guenther
kettenis [Fri, 18 Apr 2014 13:35:31 +0000 (13:35 +0000)]
If somebody else is already processing the RPC requests on a stream socket,
don't panic, but just return.
tested by nicm@
ok tedu@
jsing [Fri, 18 Apr 2014 13:26:34 +0000 (13:26 +0000)]
More KNF.
tedu [Fri, 18 Apr 2014 13:19:03 +0000 (13:19 +0000)]
another round of chemo for the RAND code to provide clarity.
ok deraadt
jsing [Fri, 18 Apr 2014 13:14:31 +0000 (13:14 +0000)]
More KNF.
tedu [Fri, 18 Apr 2014 13:13:50 +0000 (13:13 +0000)]
egd support is too dangerous to leave where somebody might find it.
ok deraadt.
jsing [Fri, 18 Apr 2014 12:15:48 +0000 (12:15 +0000)]
More KNF.
reyk [Fri, 18 Apr 2014 12:02:37 +0000 (12:02 +0000)]
The proc.c code sets up some socketpair for the communication between
different privsep processes. The implementation is using
multi-dimensional arrays and and some complicated process to process
relations. This is the first attempt of cleaning it up and to allow
N:N communications for the upcoming "CA" processes.
Discussed with some, but nobody dared to comment on the code.
guenther [Fri, 18 Apr 2014 11:51:16 +0000 (11:51 +0000)]
Have each thread keeps its own (counted!) reference to the process's ucreds
to avoid possible use-after-free references when swapping ids in threaded
processes. "Do I have the right creds?" checks are always made with the
threads creds.
Inspired by FreeBSD and NetBSD
"right time" deraadt@
henning [Fri, 18 Apr 2014 11:41:10 +0000 (11:41 +0000)]
no more altq hier^Where either
henning [Fri, 18 Apr 2014 11:36:06 +0000 (11:36 +0000)]
no more altq
guenther [Fri, 18 Apr 2014 11:35:51 +0000 (11:35 +0000)]
Handle passing zero to a variable fieldwidth or precision.
ok deraadt@
deraadt [Fri, 18 Apr 2014 11:33:33 +0000 (11:33 +0000)]
unistd.h for protos where needed
deraadt [Fri, 18 Apr 2014 11:31:16 +0000 (11:31 +0000)]
define RFILE only in the file that needs it
jsing [Fri, 18 Apr 2014 11:20:32 +0000 (11:20 +0000)]
More KNF.
henning [Fri, 18 Apr 2014 11:19:45 +0000 (11:19 +0000)]
stop mentioning altq
henning [Fri, 18 Apr 2014 11:18:40 +0000 (11:18 +0000)]
stop talking about altq
this manpage needs a bigger sync with reality...
henning [Fri, 18 Apr 2014 11:15:21 +0000 (11:15 +0000)]
missed these
jsg [Fri, 18 Apr 2014 11:14:35 +0000 (11:14 +0000)]
add braces missed when fixing leaks
deraadt [Fri, 18 Apr 2014 11:14:08 +0000 (11:14 +0000)]
KNF, since this is no longer script generated
deraadt [Fri, 18 Apr 2014 10:53:17 +0000 (10:53 +0000)]
sync
jca [Fri, 18 Apr 2014 10:48:29 +0000 (10:48 +0000)]
Invert the signature logic of in{,6}_selectsrc, make them return the
error code and pass the resulting source address back to the caller
through a pointer, as suggested by chrisz. This gives us more readable
code, and eases the deletion of useless checks in the callers' error path.
Add a bunch of "0 -> NULL" conversions, while here.
ok chrisz@ mpi@
henning [Fri, 18 Apr 2014 10:48:23 +0000 (10:48 +0000)]
stop testing altq stuffz
how many tests I wrote back then... (of which the majority is pointless)
claudio [Fri, 18 Apr 2014 10:05:22 +0000 (10:05 +0000)]
Do not set RTF_DONE flag on route message, only the kernel is allowed to
set that to indicate that it processed the message. Also de-#ifdef the
RTF_MASK part, OpenBSD is not that archaic.
OK yasuoka@ long time ago
schwarze [Fri, 18 Apr 2014 10:00:48 +0000 (10:00 +0000)]
Switch to the new makewhatis(8)/apropos(1)/whatis(1) combo.
"commit the switch now" espie@ "go for it" deraadt@
See the apropos(1) manual for a description of what's new.
On machines where you want the full functionality,
run "sudo makewhatis" and put "MAKEWHATISARGS=' '" into weekly.local(8).
Otherwise, when upgrading via source, run "sudo makewhatis -Q".
ajacoutot [Fri, 18 Apr 2014 09:47:34 +0000 (09:47 +0000)]
Upgrade our KerberosV to Heimdal 1.5.3 (minor update).
- Fix leaking file descriptors in KDC
- Better socket/timeout handling in libkrb5
- General bug fixes
ok robert@
schwarze [Fri, 18 Apr 2014 09:46:41 +0000 (09:46 +0000)]
Fix a few lies; polish wording and formatting while here.
deraadt [Fri, 18 Apr 2014 09:38:42 +0000 (09:38 +0000)]
simplify file:file:... stuff
claudio [Fri, 18 Apr 2014 09:34:05 +0000 (09:34 +0000)]
Also match RTS5227 in rtsx(4). Works for me on the THinkPad X240.
This will give us basic support there are a few extra bits in the linux
driver we ignore for now. Something to look at in the future.
OK stsp@ mlarkin@ kettenis@
florian [Fri, 18 Apr 2014 08:44:25 +0000 (08:44 +0000)]
We are not ARCHAIC; no object change.
OK lteo@
jsing [Fri, 18 Apr 2014 07:09:23 +0000 (07:09 +0000)]
More KNF.
gilles [Fri, 18 Apr 2014 06:59:15 +0000 (06:59 +0000)]
support mailaddr lookup in table_db
jsing [Fri, 18 Apr 2014 05:37:44 +0000 (05:37 +0000)]
More KNF.
jmatthew [Fri, 18 Apr 2014 05:08:15 +0000 (05:08 +0000)]
Implement qle_fabric_plogo and let qle_fabric_plogi look at the response that
comes back, so later on we can work out what to do when logins fail
tedu [Fri, 18 Apr 2014 04:33:09 +0000 (04:33 +0000)]
whitespace normalization
tedu [Fri, 18 Apr 2014 04:23:53 +0000 (04:23 +0000)]
repair whitespace. this is what happens when functions take 20 params.
jsing [Fri, 18 Apr 2014 04:17:16 +0000 (04:17 +0000)]
Remove MAIN and PROG defines now that we do not compile non-monolithic.
ok tedu@