Hi folks!

Some changes to the client library in 1.4.5 may be missing some cleanup in
the error path based on the addition of a new dup() for the request_fd.

In particular coroipcc.c:coroipcc_service_connect() added the following
around line 608.
ipc_instance->user_app_fd = dup(request_fd);

Unforuntately it may be possible under conditions such as a downed corosync
daemon or a limited memory pool to run any of the error paths associated
with the routine labeled starting at 'error_exit:' through 'error_connect:'
and end up only closing request_fd, but not closing off the dup!

I wonder if the error path could be improved by adding the following around
line coroipcc.c:789

error_connect:
> close(ipc_instance->user_app_fd);
close(request_fd);

Additional checks may be required although on cursory inspection the
user_app_fd should always be valid if request_fd is setup.

dan

-- 
Dan Clark   503-915-3646
_______________________________________________
discuss mailing list
[email protected]
http://lists.corosync.org/mailman/listinfo/discuss

Reply via email to