Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > You recently also suggested this if...else... dance to Pratik, where it > was not at all about doing the same thing slightly differently, but rather > two different things: 1) return an error because execvp() returned an > error, 2) indicate a serious bug (and you did not even suggest using BUG() > IIRC which is also wrong). I was going to avoid wasting time on this topic, but I happened to have a chance to review the execvp() thing. I actually think that is a good example of doing the same thing slightly differently. We want to abort the process when execvp() gives control back to that caller, and we want to do so with die_errno() when we know we have errno (i.e. sane_execvp() gave us negative). When sane_execvp() gave control back to us with non-negative return, we cannot use die_errno(), but we would want to abort the process regardless, as it is an indication that the callee is not sane after all ;-) It is a bug in underlying execvp() that we cannot do much about, though.