Fix memory leak on failed peer connections.
[doldaconnect.git] / daemon / fnet-dc.c
index 54daeb7..82081a8 100644 (file)
@@ -1600,6 +1600,7 @@ static void cmd_peerlock(struct socket *sk, struct dcpeer *peer, char *cmd, char
        peer->transfer = transfer;
        qstrf(sk, "$Direction %s %i|", (peer->direction == TRNSD_UP)?"Upload":"Download", rand() % 10000);
        qstrf(sk, "$Key %s|", key);
+       free(key);
     } else {
        if(peer->key != NULL)
            free(peer->key);
@@ -3172,6 +3173,7 @@ static void peerconnect(struct socket *sk, int err, struct fnetnode *fn)
     if(err != 0)
     {
        putfnetnode(fn);
+       putsock(sk);
        return;
     }
     hub = fn->data;