Be careful that you only do this in the error case, the code from fdd.y makes sure to get this right by only freeing endpoints that were left on the list by the call to `fd_peer_add()`.