Is it possible for a simulator to always abort? In this paper of J. Baron, et al. (PDF), simulator always aborts the ideal functionality before client outputs its pattern-matching result obtained from the ideal functionality. (See bottom of page 30, and top of page 33)

My questions are:


Why should simulator always abort?
While simulator always abort, is it possible for adversary to distinguish between ideal and real worlds? Since, in ideal world simulator always abort and client will never output anything.
This is very strange, and somewhat suspect. The abort here is one that prevents the client from getting output. However, the real-world adversary may behave in a way that the client does get output. I suggest writing to the authors to ask and/or going through this very carefully. Without having gone through the details at all, my initial guess is that this doesn't seem right. Having said that, I didn't check it at all (and this section does say "Initial...", so maybe this is just part of the simulation).