diff --git a/http-relay.c b/http-relay.c index 1e3ae67..4d03fe7 100644 --- a/http-relay.c +++ b/http-relay.c @@ -450,7 +450,6 @@ static void httpr_client_read_content(struct bufferevent *buffev, redsocks_clien static int post_buffer_len = 64 * 1024; char *post_buffer = calloc(post_buffer_len, 1); if (!post_buffer) { - free(post_buffer); redsocks_log_error(client, LOG_ERR, "run out of memory"); redsocks_drop_client(client); return; diff --git a/redsocks.h b/redsocks.h index 1a4a7c1..9d2ff3e 100644 --- a/redsocks.h +++ b/redsocks.h @@ -14,6 +14,7 @@ struct redsocks_client_t; +struct redsocks_instance_t; typedef struct relay_subsys_t { char *name; @@ -23,7 +24,7 @@ typedef struct relay_subsys_t { evbuffercb writecb; void (*init)(struct redsocks_client_t *client); void (*fini)(struct redsocks_client_t *client); - void (*instance_fini)(struct redsocks_client_t *client); + void (*instance_fini)(struct redsocks_instance_t *instance); // connect_relay (if any) is called instead of redsocks_connect_relay after client connection acceptance void (*connect_relay)(struct redsocks_client_t *client); // client_eof is called while relay is not set up but EOF from client is received