diff options
author | trociny <trociny@FreeBSD.org> | 2011-03-27 19:56:55 +0000 |
---|---|---|
committer | trociny <trociny@FreeBSD.org> | 2011-03-27 19:56:55 +0000 |
commit | 42e994cbec564b754bf9f8246495852233198cae (patch) | |
tree | 74c038c0d8f0c581e8fad9b845988794253ba445 /lib/libc/stdlib/system.c | |
parent | c0b9051b174edd52b1c981a25a28d77d5133a049 (diff) | |
download | FreeBSD-src-42e994cbec564b754bf9f8246495852233198cae.zip FreeBSD-src-42e994cbec564b754bf9f8246495852233198cae.tar.gz |
In g_gate_create() there is a window between when g_gate_softc is
registered in g_gate_units array and when its sc_provider field is
filled. If during this period g_gate_units is accessed by another
thread that is checking for provider name collision the crash is
possible.
Fix this by adding sc_name field to struct g_gate_softc. In
g_gate_create() when g_gate_softc is created but sc_provider is still
not sc_name points to provider name stored in the local array.
Approved by: pjd (mentor)
Reported by: Freddie Cash <fjwcash@gmail.com>
MFC after: 1 week
Diffstat (limited to 'lib/libc/stdlib/system.c')
0 files changed, 0 insertions, 0 deletions