Reviewed-by: Steven Dake <[email protected]> Thanks! -steve
On 12/22/2010 05:43 PM, Angus Salkeld wrote: > If any sys call in memory_map() fails the failure currently gets ignored. > Now we pass a CS_ERR_LIBRARY back to the client app. > > Signed-off-by: Angus Salkeld <[email protected]> > --- > exec/coroipcs.c | 22 +++++++++++++++++++++- > 1 files changed, 21 insertions(+), 1 deletions(-) > > diff --git a/exec/coroipcs.c b/exec/coroipcs.c > index 0ca22d3..703802a 100644 > --- a/exec/coroipcs.c > +++ b/exec/coroipcs.c > @@ -1611,7 +1611,6 @@ int coroipcs_handler_dispatch ( > ipc_disconnect (conn_info); > return (0); > } > - req_setup_send (conn_info, CS_OK); > > #if _POSIX_THREAD_PROCESS_SHARED < 1 > conn_info->semkey = req_setup->semkey; > @@ -1620,26 +1619,47 @@ int coroipcs_handler_dispatch ( > req_setup->control_file, > req_setup->control_size, > (void *)&conn_info->control_buffer); > + if (res == -1) { > + goto send_setup_response; > + } > conn_info->control_size = req_setup->control_size; > > res = memory_map ( > req_setup->request_file, > req_setup->request_size, > (void *)&conn_info->request_buffer); > + if (res == -1) { > + goto send_setup_response; > + } > conn_info->request_size = req_setup->request_size; > > res = memory_map ( > req_setup->response_file, > req_setup->response_size, > (void *)&conn_info->response_buffer); > + if (res == -1) { > + goto send_setup_response; > + } > conn_info->response_size = req_setup->response_size; > > res = circular_memory_map ( > req_setup->dispatch_file, > req_setup->dispatch_size, > (void *)&conn_info->dispatch_buffer); > + if (res == -1) { > + goto send_setup_response; > + } > conn_info->dispatch_size = req_setup->dispatch_size; > > + send_setup_response: > + if (res == 0) { > + req_setup_send (conn_info, CS_OK); > + } else { > + req_setup_send (conn_info, CS_ERR_LIBRARY); > + ipc_disconnect (conn_info); > + return (0); > + } > + > conn_info->service = req_setup->service; > conn_info->refcount = 0; > conn_info->setup_bytes_read = 0; _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
