diff --git a/kitty/child-monitor.c b/kitty/child-monitor.c index 4348c100f..ae40c68b9 100644 --- a/kitty/child-monitor.c +++ b/kitty/child-monitor.c @@ -809,7 +809,7 @@ cm_thread_write(PyObject UNUSED *self, PyObject *args) { data->fd = fd; memcpy(data->buf, buf, data->sz); int ret = pthread_create(&thread, NULL, thread_write, data); - if (ret != 0) { free_twd(data); return PyErr_SetFromErrno(PyExc_OSError); } + if (ret != 0) { close(fd); free_twd(data); return PyErr_SetFromErrno(PyExc_OSError); } pthread_detach(thread); Py_RETURN_NONE; }