aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/client.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/client.c b/src/client.c
index 6457fb373..531177ab2 100644
--- a/src/client.c
+++ b/src/client.c
@@ -719,7 +719,7 @@ int client_print(int fd, const char *buffer, size_t buflen)
static void client_defer_output(struct client *client,
const void *data, size_t length)
{
- struct sllnode *buf;
+ struct sllnode **buf_r;
assert(client->deferred_send != NULL);
@@ -735,10 +735,10 @@ static void client_defer_output(struct client *client,
return;
}
- buf = client->deferred_send;
- while (buf->next)
- buf = buf->next;
- buf->next = new_sllnode(data, length);
+ buf_r = &client->deferred_send;
+ while (*buf_r != NULL)
+ buf_r = &(*buf_r)->next;
+ *buf_r = new_sllnode(data, length);
}
static void client_write_output(struct client *client)