diff -r 072e4a595607 -r 2f7f1e10f840 mercurial/sslutil.py --- a/mercurial/sslutil.py Wed Jun 29 18:15:28 2016 -0700 +++ b/mercurial/sslutil.py Wed Jun 29 19:37:38 2016 -0700 @@ -268,7 +268,12 @@ sslcontext.load_cert_chain(certfile, keyfile, password) if settings['cafile'] is not None: - sslcontext.load_verify_locations(cafile=settings['cafile']) + try: + sslcontext.load_verify_locations(cafile=settings['cafile']) + except ssl.SSLError as e: + raise error.Abort(_('error loading CA file %s: %s') % ( + settings['cafile'], e.args[1]), + hint=_('file is empty or malformed?')) caloaded = True elif settings['allowloaddefaultcerts']: # This is a no-op on old Python.