git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
GnuTLS: Fix client detection of server reject of client cert under TLS1.3
[exim.git]
/
src
/
src
/
smtp_out.c
diff --git
a/src/src/smtp_out.c
b/src/src/smtp_out.c
index 8a4dace7e7f324f8589228035ac750f5422f4599..b7a8354797fa5c8b26ab0b60c1823ae839411976 100644
(file)
--- a/
src/src/smtp_out.c
+++ b/
src/src/smtp_out.c
@@
-690,20
+690,22
@@
Returns: TRUE if a valid, non-error response was received; else FALSE
/*XXX could move to smtp transport; no other users */
BOOL
/*XXX could move to smtp transport; no other users */
BOOL
-smtp_read_response(void * sx0, uschar *buffer, int size, int okdigit,
+smtp_read_response(void * sx0, uschar *
buffer, int size, int okdigit,
int timeout)
{
smtp_context * sx = sx0;
int timeout)
{
smtp_context * sx = sx0;
-uschar *ptr = buffer;
-int count = 0;
+uschar *
ptr = buffer;
+int count = 0
, rc
;
errno = 0; /* Ensure errno starts out zero */
#ifdef EXPERIMENTAL_PIPE_CONNECT
if (sx->pending_BANNER || sx->pending_EHLO)
errno = 0; /* Ensure errno starts out zero */
#ifdef EXPERIMENTAL_PIPE_CONNECT
if (sx->pending_BANNER || sx->pending_EHLO)
- if (
smtp_reap_early_pipe(sx, &count
) != OK)
+ if (
(rc = smtp_reap_early_pipe(sx, &count)
) != OK)
{
DEBUG(D_transport) debug_printf("failed reaping pipelined cmd responsess\n");
{
DEBUG(D_transport) debug_printf("failed reaping pipelined cmd responsess\n");
+ buffer[0] = '\0';
+ if (rc == DEFER) errno = ERRNO_TLSFAILURE;
return FALSE;
}
#endif
return FALSE;
}
#endif