Fix bug when expanding message.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Wed, 12 Jun 2013 22:01:37 +0000 (19:01 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Wed, 12 Jun 2013 22:03:22 +0000 (19:03 -0300)
If we need to expand a message while adding a field to it, we need to
update the pointer we are using, and the one we are returning back.

rnet_message.c

index 124fa4c..b967e04 100644 (file)
@@ -67,6 +67,7 @@ static int add_field(struct rnet_message **message, char *key, int klen,
        if ((msg->alen - msg->len) < (klen + vlen + 3)) {
                if (rnet_message_expand(message, MAX(msg->len, klen + vlen + 3)))
                        return -ENOMEM;
+               msg = *message;
        }
        buffer = msg->buffer + msg->len;
        if (klen > 0x7f || klen < 0)