diff options
author | Carmelo Amoroso <carmelo.amoroso@st.com> | 2010-11-28 21:09:47 +0100 |
---|---|---|
committer | Carmelo Amoroso <carmelo.amoroso@st.com> | 2010-11-28 21:09:47 +0100 |
commit | 57f6cce72c889f2e7b342e87a565a064320a6ee2 (patch) | |
tree | 5466406472918d3adb63398f5fb9ea1511a5e73f /libc/inet/getnet.c | |
parent | 4ec89b87bc0eea8d9ca6b50564d12eeb3b1b0119 (diff) | |
parent | 5dea871ac73ef4608022c058b50adc946917f9b9 (diff) |
Merge commit 'origin/master' into prelink
Conflicts:
ldso/include/dl-hash.h
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'libc/inet/getnet.c')
-rw-r--r-- | libc/inet/getnet.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/libc/inet/getnet.c b/libc/inet/getnet.c index c604b63d3..9049f97af 100644 --- a/libc/inet/getnet.c +++ b/libc/inet/getnet.c @@ -27,9 +27,11 @@ aliases: case sensitive optional space or tab separated list of other names #include <bits/uClibc_mutex.h> __UCLIBC_MUTEX_STATIC(mylock, PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP); -#define MAXALIASES 35 -#define BUFSZ (80) /* one line */ -#define SBUFSIZE (BUFSZ + 1 + (sizeof(char *) * MAXALIASES)) +#define MINTOKENS 2 +#define MAXALIASES 8 +#define MAXTOKENS (MINTOKENS + MAXALIASES + 1) +#define BUFSZ (255) /* one line */ +#define SBUFSIZE (BUFSZ + 1 + (sizeof(char *) * MAXTOKENS)) static parser_t *netp = NULL; static struct netent nete; @@ -65,10 +67,8 @@ int getnetent_r(struct netent *result_buf, int *h_errnop ) { - char **alias, *cp = NULL; - char **net_aliases; char **tok = NULL; - const size_t aliaslen = sizeof(*net_aliases) * MAXALIASES; + const size_t aliaslen = sizeof(char *) * MAXTOKENS; int ret = ERANGE; *result = NULL; @@ -86,7 +86,7 @@ int getnetent_r(struct netent *result_buf, netp->data_len = aliaslen; netp->line_len = buflen - aliaslen; /* <name>[[:space:]]<netnumber>[[:space:]][<aliases>] */ - if (!config_read(netp, &tok, 3, 2, "# \t/", PARSE_NORMAL)) { + if (!config_read(netp, &tok, MAXTOKENS-1, MINTOKENS, "# \t/", PARSE_NORMAL)) { goto DONE; } result_buf->n_name = *(tok++); @@ -110,16 +110,7 @@ int getnetent_r(struct netent *result_buf, sa4_to_uint32(addri->ai_addr); freeaddrinfo(addri); } - result_buf->n_aliases = alias = net_aliases = tok; - cp = *alias; - while (cp && *cp) { - if (alias < &net_aliases[MAXALIASES - 1]) - *alias++ = cp; - cp = strpbrk(cp, " \t"); - if (cp != NULL) - *cp++ = '\0'; - } - *alias = NULL; + result_buf->n_aliases = tok; *result = result_buf; ret = 0; DONE: |