I think the cleanest thing to do is to check the return of lengthOfBytesUsingEncoding, as the documentation states:
```
Returns 0 if the specified encoding cannot be used to convert the receiver or if the amount of memory required for storing the results of the encoding conversion would exceed NSIntegerMax
```
we can in that case reassign appName to `<UnnamedApp>`.

If we have done that, then we get to the cString conversion and it still fails, aborting the initialization makes sense as something is thoroughly wrong.