aboutsummaryrefslogtreecommitdiffstats
path: root/src/mds-server/receiving.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mds-server/receiving.c')
-rw-r--r--src/mds-server/receiving.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mds-server/receiving.c b/src/mds-server/receiving.c
index 71f1210..8571944 100644
--- a/src/mds-server/receiving.c
+++ b/src/mds-server/receiving.c
@@ -116,14 +116,13 @@ static int modifying_notify(client_t* client, mds_message_t message, uint64_t mo
*/
static int add_intercept_conditions_from_message(client_t* client, int modifying, int64_t priority, int stop)
{
- int errno_ = 0;
+ int saved_errno;
char* payload = client->message.payload;
size_t payload_size = client->message.payload_size;
size_t size = 64;
char* buf;
- if (xmalloc(buf, size + 1, char))
- return -1;
+ fail_if (xmalloc(buf, size + 1, char));
/* All messages */
if (client->message.payload_size == 0)
@@ -149,10 +148,10 @@ static int add_intercept_conditions_from_message(client_t* client, int modifying
char* old_buf = buf;
if (xrealloc(buf, (size <<= 1) + 1, char))
{
- errno_ = errno;
+ saved_errno = errno;
free(old_buf);
pthread_mutex_unlock(&(client->mutex));
- break;
+ fail_if (errno = saved_errno, 1);
}
}
memcpy(buf, payload, len);
@@ -166,8 +165,9 @@ static int add_intercept_conditions_from_message(client_t* client, int modifying
done:
free(buf);
- errno = errno_;
- return errno_ ? -1 : 0;
+ return 0;
+ fail:
+ return -1;
}