fix bug in dladdr that prevented resolving addresses in the PLT
[oweals/musl.git] / src / stdio / open_wmemstream.c
index 2fe504c798d65918722fd13c9a97d60da388a285..35370309d6fd2a8cdd8f91fea0c8820d57caedd7 100644 (file)
@@ -79,12 +79,13 @@ FILE *open_wmemstream(wchar_t **bufp, size_t *sizep)
        f->seek = wms_seek;
        f->close = wms_close;
 
-       if (!libc.threaded) {
-               f->lock = -1;
-               f->next = libc.ofl_head;
-               if (libc.ofl_head) libc.ofl_head->prev = f;
-               libc.ofl_head = f;
-       }
+       if (!libc.threaded) f->lock = -1;
+
+       OFLLOCK();
+       f->next = libc.ofl_head;
+       if (libc.ofl_head) libc.ofl_head->prev = f;
+       libc.ofl_head = f;
+       OFLUNLOCK();
 
        return f;
 }