jeevatkm / ReplyWithHeader

Quoting Outlook style headers and Signatures for Mail.app
https://myjeeva.com/replywithheader
MIT License
64 stars 7 forks source link

Mail.app hangs on reply or forward when a previously configured font is missing #102

Closed GHubbler closed 8 years ago

GHubbler commented 8 years ago

I had set the font for RWH to Tahoma and had it installed as system wide available. Now, I cleaned all the old MS Office stuff from my Mac and did a fresh install of Office 2016. In Office the fonts are available in the apps, but not on system level.

RWH had now an old entry to a font that no longer exists. When replying or forwarding a mail Mail.app just hangs. In Console there is also a corresponding message of an unhandled reference to a nil value.

Suggestion: Check for existence of the configured font on startup with an error message if it is not existent any more or set this to an available (default) system font as a fallback.

ziggyke commented 8 years ago

Nice suggestion, I assume it is solved by changing the font to another one in the preferences of RWH?

jeevatkm commented 8 years ago

I will update the default font to Helvetica in v5.2 release. Then user can choose the font they like for headers. Thanks for reporting.

jeevatkm commented 8 years ago

Done! will be released in v5.2 this weekend, for now updating v5.2-beta. you can download it right away.

jeevatkm commented 8 years ago

Closing it for v5.2 release.

GHubbler commented 8 years ago

In my opinion there should be also a check, if a selected font is available or not. Without this might become a security issue.

jeevatkm commented 8 years ago

@GHubbler user will be able to select only available fonts from system. That's I have defaulted to system available font instead of Tahoma.

Can you please describe about security issue you mentioned about?

GHubbler commented 8 years ago

I have learned: All and every input is eval. So, I have to check, that functions are only in defined states. Checking variables to nil, null or nothing is the first check to avoid undefined application behavior. If a user can delete a previously defined or the default font the application becomes in an undefined state. And those may open the door to further implied or malicious actions. And if I can avoid those undefined condition with a simple check, I would do so. ;)