diff options
author | Ulrich Drepper <drepper@redhat.com> | 2006-12-19 15:45:39 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2006-12-19 15:45:39 +0000 |
commit | 44901495168744c4344395893a0c44fdadcf3a7b (patch) | |
tree | a192b50f012a523f2ad9efe90df966ce4c111c94 /nss | |
parent | a12dcecc507ec5a2fc6b82bd1918357ac58b7da8 (diff) | |
download | glibc-44901495168744c4344395893a0c44fdadcf3a7b.tar.gz |
* nss/getXXbyYY_r.c: Include atomic.h.cvs/fedora-glibc-20061219T1804
(INTERNAL (REENTRANT_NAME)): Write startp after start_fct,
add atomic_write_barrier () in between.
Diffstat (limited to 'nss')
-rw-r--r-- | nss/getXXbyYY_r.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index 34c305f3b2..080163aac9 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1996-2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -18,6 +18,7 @@ 02111-1307 USA. */ #include <assert.h> +#include <atomic.h> #include <errno.h> #include <stdbool.h> #include "nsswitch.h" @@ -173,9 +174,6 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, startp = (service_user *) -1l; else { - startp = nip; - start_fct = fct.l; - #ifdef NEED__RES /* The resolver code will really be used so we have to initialize it. */ @@ -190,6 +188,11 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, if (!_res_hconf.initialized) _res_hconf_init (); #endif /* need _res_hconf */ + + start_fct = fct.l; + /* Make sure start_fct is written before startp. */ + atomic_write_barrier (); + startp = nip; } } else |