MINOR: buffer: move buffer initialization after channel initialization

It's not clean to initialize the buffer before the channel since it
dereferences one pointer in the channel. Also we'll want to let the
channel pre-initialize the buffer, so let's ensure that the channel
is always initialized prior to the buffers.
diff --git a/src/session.c b/src/session.c
index 05fd72e..6770ee4 100644
--- a/src/session.c
+++ b/src/session.c
@@ -477,15 +477,6 @@
 	if (unlikely((s->req = pool_alloc2(pool2_channel)) == NULL))
 		goto out_free_task; /* no memory */
 
-	if (unlikely(b_alloc(&s->req->buf) == NULL))
-		goto out_free_req; /* no memory */
-
-	if (unlikely((s->rep = pool_alloc2(pool2_channel)) == NULL))
-		goto out_free_req_buf; /* no memory */
-
-	if (unlikely(b_alloc(&s->rep->buf) == NULL))
-		goto out_free_rep; /* no memory */
-
 	channel_init(s->req);
 	s->req->prod = &s->si[0];
 	s->req->cons = &s->si[1];
@@ -501,6 +492,12 @@
 	s->req->wex = TICK_ETERNITY;
 	s->req->analyse_exp = TICK_ETERNITY;
 
+	if (unlikely(b_alloc(&s->req->buf) == NULL))
+		goto out_free_req; /* no memory */
+
+	if (unlikely((s->rep = pool_alloc2(pool2_channel)) == NULL))
+		goto out_free_req_buf; /* no memory */
+
 	channel_init(s->rep);
 	s->rep->prod = &s->si[1];
 	s->rep->cons = &s->si[0];
@@ -518,6 +515,9 @@
 	s->rep->wex = TICK_ETERNITY;
 	s->rep->analyse_exp = TICK_ETERNITY;
 
+	if (unlikely(b_alloc(&s->rep->buf) == NULL))
+		goto out_free_rep; /* no memory */
+
 	txn = &s->txn;
 	/* Those variables will be checked and freed if non-NULL in
 	 * session.c:session_free(). It is important that they are