Mumble fails to start if the OpenSSL build dir exists, but is not accessible #399

Open
opened 2026-02-20 19:24:14 -05:00 by deekerman · 0 comments
Owner

Originally created by @mkrautz on GitHub (Nov 17, 2014).

I was testing various configurations to figure out what was causing a bug I was seeing last week. While I testing, I ran into an odd situation where I couldn't start Mumble.

Basically, I had an alternate user account ("mkrautz2") on the Windows machine I typically build Mumble on.

My c:\MumbleBuild junction is owned by my regular user, "mkrautz". It lives in c:\Users\mkrautz\MumbleBuild and is junctioned to c:\MumbleBuild.

When I copied a static build I had built on the "mkrautz" user, to the desktop of the "mkrautz2" user, and tried to run it as the "mkrautz2" user, I couldn't.

Turns out that if the compiled-in path for the config file does exist, but isn't readable, OpenSSL's own initialization routines will fail. In particular, the problem happens inside OpenSSL_config (which is called by QSsl, QSslCertificate or something -- I don't have the traces right here at the moment). It tries to read a config file (if one is available), and it even passes a flag to the config reader function to allow it to ignore failures if the file doesn't exist. Well, turns out that it DOES exist, but isn't readable. This is treated as a fatal error, and the program shuts down.

This is very much a corner case. But I ran into it, and I'll leave this here in case other people see the same thing.

Possible fixes (if it is something we want to fix):

  • Don't compile in a config path
  • Fix OpenSSL to treat an inaccessible config file as not being available.

(I can update with more details later if necessary, such as stack traces and correct function names)

Originally created by @mkrautz on GitHub (Nov 17, 2014). I was testing various configurations to figure out what was causing a bug I was seeing last week. While I testing, I ran into an odd situation where I couldn't start Mumble. Basically, I had an alternate user account ("mkrautz2") on the Windows machine I typically build Mumble on. My c:\MumbleBuild junction is owned by my regular user, "mkrautz". It lives in c:\Users\mkrautz\MumbleBuild and is junctioned to c:\MumbleBuild. When I copied a static build I had built on the "mkrautz" user, to the desktop of the "mkrautz2" user, and tried to run it as the "mkrautz2" user, I couldn't. Turns out that if the compiled-in path for the config file does _exist_, but isn't _readable_, OpenSSL's own initialization routines will fail. In particular, the problem happens inside OpenSSL_config (which is called by QSsl, QSslCertificate or something -- I don't have the traces right here at the moment). It tries to read a config file (if one is available), and it even passes a flag to the config reader function to allow it to ignore failures if the file doesn't exist. Well, turns out that it _DOES_ exist, but isn't readable. This is treated as a fatal error, and the program shuts down. This is very much a corner case. But I ran into it, and I'll leave this here in case other people see the same thing. Possible fixes (if it is something we want to fix): - Don't compile in a config path - Fix OpenSSL to treat an inaccessible config file as not being available. (I can update with more details later if necessary, such as stack traces and correct function names)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/mumble-mumble-voip#399
No description provided.