mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-23 13:09:58 +08:00
code, make sure the nis_freeresult call doesn't crash and that the result is reported correctly. * nis/nis_table.c (nis_list): Handle FOLLOW_PATH | ALL_RESULTS when callback is NULL. * nis/Versions (libnss_nisplus): Add _nss_nisplus_initgroups_dyn@@GLIBC_PRIVATE. * nis/Makefile (libnss_nisplus-routines): Add nisplus-initgroups. * nis/nss_nisplus/nisplus-grp.c (tablename_val, tablename_len, _nss_create_tablename): Rename to... (grp_tablename_val, grp_tablename_len, _nss_grp_create_tablename): ... these. No longer static. (internal_setgrent): Adjust users. (_nss_nisplus_getgrnam_r, _nss_nisplus_getgrgid_r): Likewise. Don't use locking around _nss_grp_create_tablename call. * nis/nss_nisplus/nisplus-initgroups.c: New file.
39 lines
824 B
C
39 lines
824 B
C
#include <tls.h>
|
|
#include <stdlib.h>
|
|
|
|
#if defined USE_TLS && defined HAVE___THREAD \
|
|
&& defined HAVE_TLS_MODEL_ATTRIBUTE
|
|
# define USE_TLS__THREAD
|
|
|
|
struct A
|
|
{
|
|
char a;
|
|
int b;
|
|
long long c;
|
|
};
|
|
|
|
extern __thread struct A a1, a2, a3, a4;
|
|
extern struct A *f1a (void);
|
|
extern struct A *f2a (void);
|
|
extern struct A *f3a (void);
|
|
extern struct A *f4a (void);
|
|
extern struct A *f5a (void);
|
|
extern struct A *f6a (void);
|
|
extern struct A *f7a (void);
|
|
extern struct A *f8a (void);
|
|
extern struct A *f9a (void);
|
|
extern struct A *f10a (void);
|
|
extern int f1b (void);
|
|
extern int f2b (void);
|
|
extern int f3b (void);
|
|
extern int f4b (void);
|
|
extern int f5b (void);
|
|
extern int f6b (void);
|
|
extern int f7b (void);
|
|
extern int f8b (void);
|
|
extern int f9b (void);
|
|
extern int f10b (void);
|
|
extern void check1 (void);
|
|
extern void check2 (void);
|
|
#endif
|