Skip to content

Commit

Permalink
Fix memory leaks
Browse files Browse the repository at this point in the history
  • Loading branch information
jhawthorn committed Dec 28, 2023
1 parent 3f5b48b commit 108b9d3
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
9 changes: 5 additions & 4 deletions contrib/ruby/ext/trilogy-ruby/cext.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,7 @@ static void mark_trilogy(void *ptr)
static void free_trilogy(void *ptr)
{
struct trilogy_ctx *ctx = ptr;
if (ctx->conn.socket != NULL) {
trilogy_free(&ctx->conn);
}
trilogy_free(&ctx->conn);
xfree(ptr);
}

Expand Down Expand Up @@ -309,15 +307,18 @@ static int try_connect(struct trilogy_ctx *ctx, trilogy_handshake_t *handshake,
int rc = args.rc;

if (rc != TRILOGY_OK) {
trilogy_sock_close(sock);
return rc;
}

/* replace the default wait callback with our GVL-aware callback so we can
escape the GVL on each wait operation without going through call_without_gvl */
sock->wait_cb = _cb_ruby_wait;
rc = trilogy_connect_send_socket(&ctx->conn, sock);
if (rc < 0)
if (rc < 0) {
trilogy_sock_close(sock);
return rc;
}

while (1) {
rc = trilogy_connect_recv(&ctx->conn, handshake);
Expand Down
7 changes: 6 additions & 1 deletion src/buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,9 @@ int trilogy_buffer_putc(trilogy_buffer_t *buffer, uint8_t c)
return TRILOGY_OK;
}

void trilogy_buffer_free(trilogy_buffer_t *buffer) { free(buffer->buff); }
void trilogy_buffer_free(trilogy_buffer_t *buffer)
{
free(buffer->buff);
buffer->buff = NULL;
buffer->len = buffer->cap = 0;
}

0 comments on commit 108b9d3

Please sign in to comment.