diff --git a/WHATS_NEW b/WHATS_NEW index 2fc8acf0e..701d502ac 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.99 - =================================== + Fix socket leak on error path in lvmetad's handle_connect. Check for failing id_read_format() in _pv_populate_lvmcache. Fix memleak on error path for lvmetad's pv_found. Unlock vg mutex in error path when lvmetad tries to lock_vg. diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c index 3711419c6..3c84e1170 100644 --- a/libdaemon/server/daemon-server.c +++ b/libdaemon/server/daemon-server.c @@ -427,8 +427,12 @@ static int handle_connect(daemon_state s) if (client.socket_fd < 0) return 0; - if (!(baton = malloc(sizeof(struct thread_baton)))) + if (!(baton = malloc(sizeof(struct thread_baton)))) { + if (close(client.socket_fd)) + perror("close"); + ERROR(&s, "Failed to allocate thread baton"); return 0; + } baton->s = s; baton->client = client;