Fix segfault

I forgot to call `mbedtls_ssl_init()`, oops.
This commit is contained in:
s0ph0s 2023-12-17 20:53:24 -05:00
parent a9d0805dba
commit be83153073

View file

@ -5081,8 +5081,8 @@ typedef struct TlsConnection_s {
int TlsConnectionSetup(TlsConnection *conn, int sock, const char *hostname) { int TlsConnectionSetup(TlsConnection *conn, int sock, const char *hostname) {
int ret; int ret;
if (!sslinitialized) TlsInit(); if (!sslinitialized) TlsInit();
// TODO(s0ph0s): Do I need to check any errors here? mbedtls_ssl_init(&(conn->ctx));
mbedtls_ssl_setup(&(conn->ctx), &confcli); DCHECK_EQ(0, mbedtls_ssl_setup(&(conn->ctx), &confcli));
if (!evadedragnetsurveillance) { if (!evadedragnetsurveillance) {
mbedtls_ssl_set_hostname(&(conn->ctx), hostname); mbedtls_ssl_set_hostname(&(conn->ctx), hostname);
} }
@ -5115,9 +5115,9 @@ int TlsConnectionSetup(TlsConnection *conn, int sock, const char *hostname) {
/** /**
* Write data to a TLS connection. * Write data to a TLS connection.
* *
* @param conn A TlsConnection that has alreday been setup. * @param C A TlsConnection that has alreday been setup.
* @param buf Arbitrary data that should be encrypted and sent on the connection. * @param B Arbitrary data that should be encrypted and sent on the connection.
* @param len The number of bytes of data in the buffer that should be sent. * @param L The number of bytes of data in the buffer that should be sent.
* @return >0 if the write was successful, 0 or less if the write failed. * @return >0 if the write was successful, 0 or less if the write failed.
* Values greater than 0 indicate the number of bytes written. * Values greater than 0 indicate the number of bytes written.
*/ */
@ -5126,9 +5126,9 @@ int TlsConnectionSetup(TlsConnection *conn, int sock, const char *hostname) {
/** /**
* Read data from a TLS connection. * Read data from a TLS connection.
* *
* @param conn A TlsConnection that has alreday been setup. * @param C A TlsConnection that has alreday been setup.
* @param buf A buffer into which to write the received data. * @param B A buffer into which to write the received data.
* @param len The maximum number of bytes to read. `buf` must be at least this big. * @param L The maximum number of bytes to read. `buf` must be at least this big.
* @return >0 if the read was successful, 0 or less if the read failed. Values greater * @return >0 if the read was successful, 0 or less if the read failed. Values greater
* than 0 indicate the number of bytes read. * than 0 indicate the number of bytes read.
*/ */
@ -5142,9 +5142,9 @@ int TlsConnectionSetup(TlsConnection *conn, int sock, const char *hostname) {
* @return 1 * @return 1
*/ */
int TlsConnectionClose(TlsConnection *conn) { int TlsConnectionClose(TlsConnection *conn) {
mbedtls_ssl_free(&(conn->ctx));
// TODO(s0ph0s): loop on EINTR // TODO(s0ph0s): loop on EINTR
close(conn->bio.fd); close(conn->bio.fd);
mbedtls_ssl_free(&(conn->ctx));
return 1; return 1;
} }