/* If "err" == 0, do nothing. Else, clean up and exit with an error message that
* consists, first, of "msg" or (if "msg" is a NULL pointer) a generic "Details
* unknown", secondly of "err" as the "internal error code", and thirdly of
/* If "err" == 0, do nothing. Else, clean up and exit with an error message that
* consists, first, of "msg" or (if "msg" is a NULL pointer) a generic "Details
* unknown", secondly of "err" as the "internal error code", and thirdly of