> @@ -634,11 +638,12 @@ static int process_client(struct tracecmd_msg_handle *msg_handle, > stop_msg_handle = msg_handle; > > /* Now we are ready to start reading data from the client */ > - if (msg_handle->version == V3_PROTOCOL) > - tracecmd_msg_collect_data(msg_handle, ofd); > - else > + if (msg_handle->version == V3_PROTOCOL) { > + ret = tracecmd_msg_collect_data(msg_handle, ofd); > + } else { > collect_metadata_from_client(msg_handle, ofd); > - > + ret = 0; > + } We should have collect_metadata_from_client() return an error too, and keep the if statement simple (no need for brackets); if (msg_handle->version == V3_PROTOCOL) ret = tracecmd_msg_collect_data(msg_handle, ofd); else ret = collect_metadata_from_client(msg_handle, ofd); There's a few "pdie"s in that function that should be converted to error returns. -- Steve > stop_msg_handle = NULL; > > /* wait a little to let our readers finish reading */