diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-04-05 01:26:47 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-04-05 01:26:47 +0000 |
commit | 26dee9c49cbbec8826db4c29e99fb50d9392a047 (patch) | |
tree | 98cce94e2e72bcb491b108c3c8f82192070b4b8f /nis/nss_nisplus/nisplus-grp.c | |
parent | fe7bdd630fab35270a88b0731cd0fc10de062046 (diff) | |
download | glibc-26dee9c49cbbec8826db4c29e99fb50d9392a047.tar.gz glibc-26dee9c49cbbec8826db4c29e99fb50d9392a047.tar.xz glibc-26dee9c49cbbec8826db4c29e99fb50d9392a047.zip |
Update. cvs/libc-ud-970404 cvs/libc-970412 cvs/libc-970411 cvs/libc-970410 cvs/libc-970409 cvs/libc-970408 cvs/libc-970407 cvs/libc-970406 cvs/libc-970405
1997-04-05 03:11 Ulrich Drepper <drepper@cygnus.com> * inet/arpa/inet.h: Rewrite. Don't use the ugly BSD way to write headers but instead add comments and parameter names. Don't use BSD specific types in prototypes. * manual/nss.texi: Correct a few typos and errors. * sysdeps/libm-ieee754/s_cbrt.c: Complete rewrite based on better algorithm. * sysdeps/libm-ieee754/s_cbrtf.c: Likewise. * sysdeps/libm-ieee754/s_cbrtl.c: Likewise. * sysdeps/libm-i387/s_cbrt.S: New file. Optimized assembler version with new algorithm. * sysdeps/libm-i387/s_cbrtf.S: New file. * sysdeps/libm-i387/s_cbrtl.S: New file. * sysdeps/libm-i387/s_frexp.S: Optimize even more. * sysdeps/libm-i387/s_frexpf.S: Likewise. * sysdeps/libm-i387/s_frexpl.S: Likewise. 1997-04-04 18:55 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * nis/Makefile: Remove CFLAGS-*, add publickey to databases. * nis/nis_call.c: Add MASTER_ONLY and HARD_LOOKUP flags, compile DES part only with secure RPC add-on. * nis/nis_names.c (nis_modify): Fix rpc function number. * nis/nis_server.c: Fix typos. * nis/nss_compat/compat-grp.c: Add NIS+ support. * nis/nss_compat/compat-pwd.c: Likewise. * nis/nss_compat/compat-spwd.c: Likewise. * nis/nss_nis/nis-grp.c: Only a return value > 0 from parse_line signals success. * nis/nss_nis/nis-publickey.c: Changes for compiling with/without secure RPC. * nis/nss_nisplus/nisplus-publickey.c: Likewise. * nis/ypclnt.c: Likewise. * nis/nis_intern.h: Likewise. * nis/nss_nisplus/nisplus-alias.c: Correct parser return code. * nis/nss_nisplus/nisplus-ethers.c: Likewise. * nis/nss_nisplus/nisplus-hosts.c: Likewise. * nis/nss_nisplus/nisplus-network.c: Likewise. * nis/nss_nisplus/nisplus-proto.c: Likewise. * nis/nss_nisplus/nisplus-pwd.c: Likewise. * nis/nss_nisplus/nisplus-rpc.c: Likewise. * nis/nss_nisplus/nisplus-service.c: Likewise. * nis/nss_nisplus/nisplus-spwd.c: Likewise. * nis/nss_nisplus/nisplus-grp.c: Rewrite parser for fixing errors and speedup. * nis/nss_nisplus/nisplus-netgrp.c: Likewise. 1997-04-04 17:03 Ulrich Drepper <drepper@cygnus.com> * math/libm-test.c (cbrt_test): Add tests for +-inf and NaN arguments. 1997-04-03 19:24 H.J. Lu <hjl@gnu.ai.mit.edu> * sysdeps/unix/sysv/linux/sigset.h (__sigisemptyset): Fix a typo. 1997-04-03 16:10 Andreas Jaeger <aj@arthur.pfalz.de> * sysdeps/libm-ieee754/s_nanf.c: * sysdeps/libm-ieee754/s_nan.c: * sysdeps/libm-ieee754/s_nanl.c: Include <stdio.h> for declaration of sprintf. 1997-04-03 13:37 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-ieee754/s_cexp.c: Fix type: string_alias -> strong_alias. Reported by sun <asun@zoology.washington.edu>. * rpc/auth.h: Removed. * rpc/auth_des.h: Removed. * sunrpc/rpc/auth.h: Moved to ... * sysdeps/generic/rpc/auth.h: ...here. * sunrpc/rpc/auth_des.h: Moved to ... * sysdeps/generic/rpc/auth_des.h: ...here. 1997-04-03 04:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/libm-i387/s_frexp.S: New file. ix87 optimized version. * sysdeps/libm-i387/s_frexpf.S: New file. * sysdeps/libm-i387/s_frexpl.S: New file. 1997-04-01 10:11 H.J. Lu <hjl@gnu.ai.mit.edu> * sysdeps/unix/sysv/linux/Makefile [$(subdir)=inet] (sysdep_headers): Remove netinet/icmp.h. Describe `inf', `infinity', `nan', `nan(...)' inputs for strtod * sysdeps/i386/memcmp.S: Likewise. * time/antarctica: Likewise. * time/australasia: Likewise.
Diffstat (limited to 'nis/nss_nisplus/nisplus-grp.c')
-rw-r--r-- | nis/nss_nisplus/nisplus-grp.c | 107 |
1 files changed, 14 insertions, 93 deletions
diff --git a/nis/nss_nisplus/nisplus-grp.c b/nis/nss_nisplus/nisplus-grp.c index 2e56afa6fc..1c73ca555b 100644 --- a/nis/nss_nisplus/nisplus-grp.c +++ b/nis/nss_nisplus/nisplus-grp.c @@ -39,63 +39,34 @@ static nis_name *names = NULL; #define NISENTRYLEN(idx,col,res) \ ((res)->objects.objects_val[(idx)].zo_data.objdata_u.en_data.en_cols.en_cols_val[(col)].ec_value.ec_value_len) -#define STRUCTURE group -#define ENTNAME grent -struct grent_data {}; - -#define TRAILING_LIST_MEMBER gr_mem -#define TRAILING_LIST_SEPARATOR_P(c) ((c) == ',') -#include "../../nss/nss_files/files-parse.c" -LINE_PARSER -(, - STRING_FIELD (result->gr_name, ISCOLON, 0); - if (line[0] == '\0' - && (result->gr_name[0] == '+' || result->gr_name[0] == '-')) - { - result->gr_passwd = NULL; - result->gr_gid = 0; - } - else - { - STRING_FIELD (result->gr_passwd, ISCOLON, 0); - if (result->gr_name[0] == '+' || result->gr_name[0] == '-') - INT_FIELD_MAYBE_NULL (result->gr_gid, ISCOLON, 0, 10, , 0) - else - INT_FIELD (result->gr_gid, ISCOLON, 0, 10,) - } - ) - -static int +int _nss_nisplus_parse_grent (nis_result * result, struct group *gr, char *buffer, size_t buflen) { -#if 0 - /* XXX here is a bug, sometimes we get some special characters at the - end of a line */ char *first_unused = buffer; size_t room_left = buflen; char *line; int count; - + if (result == NULL) - return -1; - + return 0; + if ((result->status != NIS_SUCCESS && result->status != NIS_S_SUCCESS) || result->objects.objects_len != 1 || result->objects.objects_val[0].zo_data.zo_type != ENTRY_OBJ || - strcmp (result->objects.objects_val[0].zo_data.objdata_u.en_data.en_type, - "group_tbl") != 0 || + strcmp (result->objects.objects_val[0].zo_data.objdata_u.en_data.en_type, + "group_tbl") != 0 || result->objects.objects_val[0].zo_data.objdata_u.en_data.en_cols.en_cols_len < 4) - return -1; + return 0; if (NISENTRYLEN (0, 0, result) >= room_left) { /* The line is too long for our buffer. */ no_more_room: __set_errno (ERANGE); - return -1; + return 0; } - + strncpy (first_unused, NISENTRYVAL (0, 0, result), NISENTRYLEN (0, 0, result)); first_unused[NISENTRYLEN (0, 0, result)] = '\0'; @@ -158,8 +129,11 @@ _nss_nisplus_parse_grent (nis_result * result, struct group *gr, if (line != gr->gr_mem[count]) { - *line = '\0'; - ++line; + if (*line != '\0') + { + *line = '\0'; + ++line; + } ++count; } else @@ -171,59 +145,6 @@ _nss_nisplus_parse_grent (nis_result * result, struct group *gr, gr->gr_mem[count] = NULL; return 1; -#else - char *p = buffer; - size_t room_left = buflen; - struct parser_data *data = (void *) buffer; - - if (result == NULL) - return -1; - - if ((result->status != NIS_SUCCESS && result->status != NIS_S_SUCCESS) || - result->objects.objects_len != 1 || - result->objects.objects_val[0].zo_data.zo_type != ENTRY_OBJ || - strcmp (result->objects.objects_val[0].zo_data.objdata_u.en_data.en_type, - "group_tbl") != 0 || - result->objects.objects_val[0].zo_data.objdata_u.en_data.en_cols.en_cols_len < 4) - return -1; - - memset (p, '\0', room_left); - - if (NISENTRYLEN (0, 0, result) + 1 > room_left) - { - __set_errno (ERANGE); - return -1; - } - strncpy (p, NISENTRYVAL (0, 0, result), NISENTRYLEN (0, 0, result)); - room_left -= (NISENTRYLEN (0, 0, result) + 1); - strcat (p, ":"); - - if (NISENTRYLEN (0, 1, result) + 1 > room_left) - { - __set_errno (ERANGE); - return -1; - } - strncat (p, NISENTRYVAL (0, 1, result), NISENTRYLEN (0, 1, result)); - room_left -= (NISENTRYLEN (0, 1, result) + 1); - strcat (p, ":"); - if (NISENTRYLEN (0, 2, result) + 1 > room_left) - { - __set_errno (ERANGE); - return -1; - } - strncat (p, NISENTRYVAL (0, 2, result), NISENTRYLEN (0, 2, result)); - room_left -= (NISENTRYLEN (0, 2, result) + 1); - strcat (p, ":"); - if (NISENTRYLEN (0, 3, result) + 1 > room_left) - { - __set_errno (ERANGE); - return -1; - } - strncat (p, NISENTRYVAL (0, 3, result), NISENTRYLEN (0, 3, result)); - room_left -= (NISENTRYLEN (0, 3, result) + 1); - - return _nss_files_parse_grent (p, gr, data, buflen); -#endif } enum nss_status |