diff options
Diffstat (limited to '')
-rw-r--r-- | src/mds-server/mds-server.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mds-server/mds-server.c b/src/mds-server/mds-server.c index 499ba96..abfc871 100644 --- a/src/mds-server/mds-server.c +++ b/src/mds-server/mds-server.c @@ -403,6 +403,7 @@ void queue_message_multicast(char* message, size_t length, client_t* sender) uint64_t modify_id; char modify_id_header[13 + 3 * sizeof(uint64_t)]; void* new_buf; + int saved_errno; /* Count the number of headers. */ for (i = 0; i < n; i++) @@ -440,7 +441,7 @@ void queue_message_multicast(char* message, size_t length, client_t* sender) *colon = '\0'; if ((headers[i] = strdup(msg)) == NULL) { - free(headers[i]); + saved_errno = errno, free(headers[i]), errno = saved_errno; header_count = i; fail_if (1); } |