One important note for non-technical readers:
*porting* shotcut to OpenBSD meant fixing *three bugs* in the ported software:
- mlt (the framework shotcut is based on) uses mutexes extensively, but does NOT
initialize them completely *even though the mutex default type is unspecified
by posix
- mlt uses locales in threaded context, trying its best to protect usage with
mutexes, but *this doesn't work for us*, setlocale is NOT safe for MT usage.
- shotcut had a use-after-free (misuse of s.toUtf8().constData(), which creates
a temporary which is *invalid* after the current statement. Turns out the
bug is *everywhere* but shows up *consistently* on OpenBSD thanks to otto@'s
malloc.
I would stress that ALL THESE ARE BUGS that are independent of OpenBSD, but
that OpenBSD is such a "hostile" environment for bugs that you have NO CHOICE
but fix the issues if you want software to run.
No comments:
Post a Comment