Edit: My apologies for the initial bug report, I thought the scope of this problem was much larger and was only being shown on MSVC.
When we create a toxav call we do not initialize any of our mutexes until we activate the call. If we then cancel the call we lock/unlock an uninitialized mutex. On MSVC this results in a segfault due to the pthread_mutex_t type being a typedeffed pointer.
Example in the following image.

Note that mutex[0] == NULL. Visual studio made a mistake in where it places the (X) in this image, the access violation occurs in pthread_mutex_unlock.
Edit: My apologies for the initial bug report, I thought the scope of this problem was much larger and was only being shown on MSVC.
When we create a toxav call we do not initialize any of our mutexes until we activate the call. If we then cancel the call we lock/unlock an uninitialized mutex. On MSVC this results in a segfault due to the pthread_mutex_t type being a typedeffed pointer.
Example in the following image.
Note that mutex[0] == NULL. Visual studio made a mistake in where it places the (X) in this image, the access violation occurs in pthread_mutex_unlock.