<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/git-send-email.perl, branch v2.0.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.0.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.0.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2014-01-27T18:44:34Z</updated>
<entry>
<title>Merge branch 'rk/send-email-ssl-cert'</title>
<updated>2014-01-27T18:44:34Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-01-27T18:44:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=de20e4472157d0ed53bdc6374185a2ce3c7c9f3d'/>
<id>urn:sha1:de20e4472157d0ed53bdc6374185a2ce3c7c9f3d</id>
<content type='text'>
The "if /etc/ssl/certs/ directory exists, explicitly telling the
library to use it as SSL_ca_path" blind-defaulting in "git
send-email" broke platforms where /etc/ssl/certs/ directory exists,
but it cannot used as SSL_ca_path (e.g. Fedora rawhide).  Fix it by
not specifying any SSL_ca_path/SSL_ca_file but still asking for peer
verification in such a case.

* rk/send-email-ssl-cert:
  send-email: /etc/ssl/certs/ directory may not be usable as ca_path
</content>
</entry>
<entry>
<title>send-email: /etc/ssl/certs/ directory may not be usable as ca_path</title>
<updated>2014-01-16T22:34:51Z</updated>
<author>
<name>Ruben Kerkhof</name>
<email>ruben@rubenkerkhof.com</email>
</author>
<published>2014-01-15T17:31:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=01645b749376b7026276112d69d5b9c22b000ee4'/>
<id>urn:sha1:01645b749376b7026276112d69d5b9c22b000ee4</id>
<content type='text'>
When sending patches on Fedora rawhide with
git-1.8.5.2-1.fc21.x86_64 and perl-IO-Socket-SSL-1.962-1.fc21.noarch,
with the following

    [sendemail]
	    smtpencryption = tls
	    smtpserver = smtp.gmail.com
	    smtpuser = ruben@rubenkerkhof.com
	    smtpserverport = 587

git-send-email fails with:

    STARTTLS failed! SSL connect attempt failed with unknown error
    error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate
    verify failed at /usr/libexec/git-core/git-send-email line 1236.

The current code detects the presence of /etc/ssl/certs directory
(it actually is a symlink to another directory, but that does not
matter) and uses SSL_ca_path to point at it when initializing the
connection with IO::Socket::SSL or Net::SMTP::SSL.  However, on the
said platform, it seems that this directory is not designed to be
used as SSL_ca_path.  Using a single file inside that directory
(cert.pem, which is a Mozilla CA bundle) with SSL_ca_file does work,
and also not specifying any SSL_ca_file/SSL_ca_path (and letting the
library use its own default) and asking for peer verification does
work.

By removing the code that blindly defaults $smtp_ssl_cert_path to
"/etc/ssl/certs", we can prevent the codepath that treats any
directory specified with that variable as usable for SSL_ca_path
from incorrectly triggering.

This change could introduce a regression for people on a platform
whose certificate directory is /etc/ssl/certs but its IO::Socket:SSL
somehow fails to use it as SSL_ca_path without being told.  Using
/etc/ssl/certs directory as SSL_ca_path by default like the current
code does would have been hiding such a broken installation without
its user needing to do anything.  These users can still work around
such a platform bug by setting the configuration variable explicitly
to point at /etc/ssl/certs.

This change should not negate what 35035bbf (send-email: be explicit
with SSL certificate verification, 2013-07-18), which was the
original change that introduced the defaulting to /etc/ssl/certs/,
attempted to do, which is to make sure we do not communicate over
insecure connection by default, triggering warning from the library.

Cf. https://bugzilla.redhat.com/show_bug.cgi?id=1043194

Tested-by: Igor Gnatenko &lt;i.gnatenko.brain@gmail.com&gt;
Signed-off-by: Ruben Kerkhof &lt;ruben@rubenkerkhof.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>send-email: set SSL options through IO::Socket::SSL::set_client_defaults</title>
<updated>2013-12-04T19:45:32Z</updated>
<author>
<name>Thomas Rast</name>
<email>tr@thomasrast.ch</email>
</author>
<published>2013-12-01T22:48:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5508f3ed2c1cdb515e658cfc29ca0d5cd6683190'/>
<id>urn:sha1:5508f3ed2c1cdb515e658cfc29ca0d5cd6683190</id>
<content type='text'>
When --smtp-encryption=ssl, we use a Net::SMTP::SSL connection,
passing its -&gt;new all the options that would otherwise go to
Net::SMTP-&gt;new (most options) and IO::Socket::SSL-&gt;start_SSL (for the
SSL options).

However, while Net::SMTP::SSL replaces the underlying socket class
with an SSL socket, it does nothing to allow passing options to that
socket.  So the SSL-relevant options are lost.

Fortunately there is an escape hatch: we can directly set the options
with IO::Socket::SSL::set_client_defaults.  They will then persist
within the IO::Socket::SSL module.

Signed-off-by: Thomas Rast &lt;tr@thomasrast.ch&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>send-email: --smtp-ssl-cert-path takes an argument</title>
<updated>2013-12-04T19:45:30Z</updated>
<author>
<name>Thomas Rast</name>
<email>tr@thomasrast.ch</email>
</author>
<published>2013-12-01T22:48:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=979e652a18eea8e865777239f11c89795d969211'/>
<id>urn:sha1:979e652a18eea8e865777239f11c89795d969211</id>
<content type='text'>
35035bb (send-email: be explicit with SSL certificate verification,
2013-07-18) forgot to specify that --smtp-ssl-cert-path takes a string
argument.  This means that the option could not actually be used as
intended.  Presumably noone noticed because it's much easier to set it
through configs anyway.

Add the required "=s".

Signed-off-by: Thomas Rast &lt;tr@thomasrast.ch&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>send-email: pass Debug to Net::SMTP::SSL::new</title>
<updated>2013-12-04T19:45:27Z</updated>
<author>
<name>Thomas Rast</name>
<email>tr@thomasrast.ch</email>
</author>
<published>2013-12-01T22:48:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d4d9653b5401b28dd88a84bd1bf1d269b8acccf6'/>
<id>urn:sha1:d4d9653b5401b28dd88a84bd1bf1d269b8acccf6</id>
<content type='text'>
We forgot to pass the Debug option through to Net::SMTP::SSL-&gt;new --
which is the same as Net::SMTP-&gt;new.  This meant that with security
set to SSL, we would never enable debug output.

Pass through the flag.

Signed-off-by: Thomas Rast &lt;tr@thomasrast.ch&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>send-email: don't call methods on undefined values</title>
<updated>2013-09-10T15:49:22Z</updated>
<author>
<name>Brian M. Carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2013-09-08T20:54:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=6cb0c883052118c35e424af7a311c66be9b366e1'/>
<id>urn:sha1:6cb0c883052118c35e424af7a311c66be9b366e1</id>
<content type='text'>
If SSL verification is enabled in git send-email, we could attempt to call a
method on an undefined value if the verification failed, since $smtp would end
up being undef.  Look up the error string in a way that will produce a helpful
error message and not cause further errors.

Signed-off-by: Brian M. Carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'rr/send-email-ssl-verify'</title>
<updated>2013-07-22T18:24:17Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-07-22T18:24:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=07b83b5d98a8b7230f3ebafeb4ecf2916c011db9'/>
<id>urn:sha1:07b83b5d98a8b7230f3ebafeb4ecf2916c011db9</id>
<content type='text'>
Newer Net::SMTP::SSL module does not want the user programs to use
the default behaviour to let server certificate go without
verification, so by default enable the verification with a
mechanism to turn it off if needed.

* rr/send-email-ssl-verify:
  send-email: be explicit with SSL certificate verification
</content>
</entry>
<entry>
<title>send-email: be explicit with SSL certificate verification</title>
<updated>2013-07-18T23:01:30Z</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>artagnon@gmail.com</email>
</author>
<published>2013-07-18T16:53:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=35035bbf074d1a4c59cd5f99282c12197105da08'/>
<id>urn:sha1:35035bbf074d1a4c59cd5f99282c12197105da08</id>
<content type='text'>
When initiating an SSL connection without explicitly specifying the
SSL certificate verification mode, Net::SMTP::SSL defaults to no
verification, but recent versions of the module gives a warning
against this use of the default.

Enable certificate verification by default, using /etc/ssl/certs as
the default path for certificates of certificate authorities.  This
path can be overriden by the --smtp-ssl-cert-path command line
option and the sendemail.smtpSSLCertPath configuration variable.

Passing an empty string as the path for CA certificates path disables
the SSL certificate verification explicitly, which does not trigger
the warning from recent versions of Net::SMTP::SSL.

Signed-off-by: Ramkumar Ramachandra &lt;artagnon@gmail.com&gt;
Helped-by: Brian M. Carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'bc/send-email-use-port-as-separate-param'</title>
<updated>2013-07-15T17:28:50Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2013-07-15T17:28:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f23777cda979f4bfb9fe36bf7c7ef75e955791b8'/>
<id>urn:sha1:f23777cda979f4bfb9fe36bf7c7ef75e955791b8</id>
<content type='text'>
Pass port number as a separate argument when send-email initializes
Net::SMTP, instead of as a part of the hostname, i.e. host:port.
This allows GSSAPI codepath to match with the hostname given.

* bc/send-email-use-port-as-separate-param:
  send-email: provide port separately from hostname
</content>
</entry>
<entry>
<title>send-email: provide port separately from hostname</title>
<updated>2013-07-05T04:40:37Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2013-07-04T22:04:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1a741bf73f898e6deb396dcc8b8d2d162798e616'/>
<id>urn:sha1:1a741bf73f898e6deb396dcc8b8d2d162798e616</id>
<content type='text'>
If the SMTP port is provided as part of the hostname to Net::SMTP, it passes
the combined string to the SASL provider; this causes GSSAPI authentication to
fail since Kerberos does not want the port information.  Instead, pass the port
as a separate argument as is done for SSL connections.

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
