[Webkit-unassigned] [Bug 230206] WebKit2 crashes when initializing due to not-threadsafe call to _NSGetEnviron()

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Sep 13 23:07:59 PDT 2021


https://bugs.webkit.org/show_bug.cgi?id=230206

--- Comment #4 from Kimmo Kinnunen <kkinnunen at apple.com> ---
(In reply to white from comment #2)
> (In reply to Kimmo Kinnunen from comment #1)
> > I think modifying environment is inherently single-threaded operation.
> > Is there a place in WebKit which modifies the environment in such a way that
> > causes WebKit to crash in this location during initialisation?
> 
> AFAIK there isn't. 
> 
> This crashing is due to some third party code naively called putenv() in
> non-main threads and caused racing condition issues while WebKit2 was
> initializing itself in main thread.

So spelled out what Alexey mentioned:
There are two options:
A) Third-party code modifies the environment in single-threaded manner
or
B) WebKit should never use the environment

I believe this option is impossible to get correct:
C) Third-party code modifies the environment in random threads at random points in time, WebKit uses the environment


I think B would be a progression in many ways, one of which would be the bug you mention, but this is just an opinion. However, there is a lot of environment use in WebKit, so it might not be such an easy task for what it accomplishes. Also, other components could use the environment.

This particular crash is a bit odd since intuitively the client process should not use JSC, and hence should not crash here. However, there is still the issue of other locations using the environment.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20210914/d5a9eff7/attachment.htm>


More information about the webkit-unassigned mailing list