BUG/MINOR: stconn: fix sedesc memory leak on stream allocation failure

If we fail to allocate a new stream in sc_new_from_endp(), and the call
to sc_new() allocated the sedesc itself (which normally doesn't happen),
then it doesn't get released on the failure path. Let's explicitly
handle this case so that it's not overlooked and avoids some head
scratching sessions.

This may be backported to 2.6.
diff --git a/src/stconn.c b/src/stconn.c
index e1266a4..f84ae6a 100644
--- a/src/stconn.c
+++ b/src/stconn.c
@@ -171,8 +171,12 @@
 	if (unlikely(!sc))
 		return NULL;
 	if (unlikely(!stream_new(sess, sc, input))) {
-		pool_free(pool_head_connstream, sc);
 		sd->sc = NULL;
+		if (sc->sedesc != sd) {
+			/* none was provided so sc_new() allocated one */
+			sedesc_free(sc->sedesc);
+		}
+		pool_free(pool_head_connstream, sc);
 		se_fl_set(sd, SE_FL_ORPHAN);
 		return NULL;
 	}