mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
s_server: Do not use SSL_sendfile when KTLS is not being used
Fix a bug in `openssl s_server -WWW` where it would attempt to invoke `SSL_sendfile` if `-ktls -sendfile` was passed on the command line, even if KTLS has not actually been enabled, for example because it is not supported by the host. Since `SSL_sendfile` is only supported when KTLS is actually being used, this resulted in a failure to serve requests. Fixes #17503. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17788)
This commit is contained in:
parent
c1b364cee3
commit
aea68b0ddb
@ -3010,6 +3010,9 @@ static int www_body(int s, int stype, int prot, unsigned char *context)
|
||||
int total_bytes = 0;
|
||||
#endif
|
||||
int width;
|
||||
#ifndef OPENSSL_NO_KTLS
|
||||
int use_sendfile_for_req = use_sendfile;
|
||||
#endif
|
||||
fd_set readfds;
|
||||
const char *opmode;
|
||||
#ifdef CHARSET_EBCDIC
|
||||
@ -3340,7 +3343,11 @@ static int www_body(int s, int stype, int prot, unsigned char *context)
|
||||
}
|
||||
/* send the file */
|
||||
#ifndef OPENSSL_NO_KTLS
|
||||
if (use_sendfile) {
|
||||
if (use_sendfile_for_req && !BIO_get_ktls_send(SSL_get_wbio(con))) {
|
||||
BIO_printf(bio_err, "Warning: sendfile requested but KTLS is not available\n");
|
||||
use_sendfile_for_req = 0;
|
||||
}
|
||||
if (use_sendfile_for_req) {
|
||||
FILE *fp = NULL;
|
||||
int fd;
|
||||
struct stat st;
|
||||
|
Loading…
Reference in New Issue
Block a user