From cc2354f92df0b9272f6bec549b02c2fc6c70da59 Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Fri, 12 Aug 2011 13:25:10 +0100 Subject: [PATCH] import mars-123.tgz --- mars_client.c | 6 ++++-- mars_net.c | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mars_client.c b/mars_client.c index 7f05a0f6..9f28d7c3 100644 --- a/mars_client.c +++ b/mars_client.c @@ -238,7 +238,7 @@ int receiver_thread(void *data) struct client_output *output = data; int status = 0; - while (!kthread_should_stop() && output->socket) { + while (status >= 0 && output->socket && !kthread_should_stop()) { struct mars_cmd cmd = {}; struct list_head *tmp; struct client_mref_aspect *mref_a = NULL; @@ -269,6 +269,7 @@ int receiver_thread(void *data) mref_a = container_of(tmp, struct client_mref_aspect, hash_head); tmp_mref = mref_a->object; if (unlikely(!tmp_mref)) { + traced_unlock(&output->hash_lock[hash_index], flags); MARS_ERR("bad internal mref pointer\n"); status = -EBADR; goto done; @@ -324,9 +325,10 @@ int receiver_thread(void *data) status = -EBADR; goto done; } + done: + brick_string_free(cmd.cmd_str1); } -done: if (status < 0) { MARS_ERR("receiver thread terminated with status = %d\n", status); } diff --git a/mars_net.c b/mars_net.c index 0470f450..ef8d7504 100644 --- a/mars_net.c +++ b/mars_net.c @@ -321,7 +321,7 @@ int _mars_send_struct(struct socket **sock, void *data, const struct meta *meta, item = *(void**)item; len = 0; if (item) - len = strlen(item); + len = strlen(item) + 1; break; case FIELD_REF: if (!meta->field_ref) {