Make a failure in ktls_sendfile a syscall error
authorNeil Horman <nhorman@openssl.org>
Fri, 1 Mar 2024 15:12:01 +0000 (10:12 -0500)
committerTomas Mraz <tomas@openssl.org>
Fri, 26 Apr 2024 15:10:34 +0000 (17:10 +0200)
a failure in ktls_sendfile results in an error in ERR_LIB_SSL, but its
really a syscall error, since ktls_sendfile just maps to a call to the
sendfile syscall.  Encode it as such

Fixes #23722

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23723)

ssl/ssl_lib.c

index ccb2f28604b479ea44fa90aad8865bc55fe8eb4a..ed3522c7f5a72d07bad20969fc2cbe597aad005d 100644 (file)
@@ -2603,7 +2603,8 @@ ossl_ssize_t SSL_sendfile(SSL *s, int fd, off_t offset, size_t size, int flags)
             BIO_set_retry_write(sc->wbio);
         else
 #endif
-            ERR_raise(ERR_LIB_SSL, SSL_R_UNINITIALIZED);
+            ERR_raise_data(ERR_LIB_SYS, get_last_sys_error(),
+                           "ktls_sendfile failure");
         return ret;
     }
     sc->rwstate = SSL_NOTHING;