trace: don't leak file descriptor in error path