summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2010-04-06 12:33:05 +0000
committerume <ume@FreeBSD.org>2010-04-06 12:33:05 +0000
commiteace2c4331fc82af21a87ccf5a818ad1e036679b (patch)
treeb8c5d418b088b2abdd3c4346d16ad5f6a2c8bbdb /lib/libc
parent69c698c97448731698194f305ab33a4c7be2b4a5 (diff)
downloadFreeBSD-src-eace2c4331fc82af21a87ccf5a818ad1e036679b.zip
FreeBSD-src-eace2c4331fc82af21a87ccf5a818ad1e036679b.tar.gz
Use the stored length value instead of calculating it by strlen().
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/net/getservent.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/libc/net/getservent.c b/lib/libc/net/getservent.c
index 6e04f34..3228bdc 100644
--- a/lib/libc/net/getservent.c
+++ b/lib/libc/net/getservent.c
@@ -489,11 +489,9 @@ static int
db_servent(void *retval, void *mdata, va_list ap)
{
char buf[BUFSIZ];
- DBT key, data;
+ DBT key, data, *result;
DB *db;
- char *resultbuf;
-
struct db_state *st;
int rv;
int stayopen;
@@ -565,7 +563,7 @@ db_servent(void *retval, void *mdata, va_list ap)
rv = NS_NOTFOUND;
goto db_fin;
}
- resultbuf = key.data;
+ result = &key;
break;
case nss_lt_id:
key.data = buf;
@@ -582,7 +580,7 @@ db_servent(void *retval, void *mdata, va_list ap)
rv = NS_NOTFOUND;
goto db_fin;
}
- resultbuf = key.data;
+ result = &key;
break;
case nss_lt_all:
key.data = buf;
@@ -594,12 +592,12 @@ db_servent(void *retval, void *mdata, va_list ap)
rv = NS_NOTFOUND;
goto db_fin;
}
- resultbuf = data.data;
+ result = &data;
break;
}
- rv = parse_result(serv, buffer, bufsize, resultbuf,
- strlen(resultbuf), errnop);
+ rv = parse_result(serv, buffer, bufsize, result->data,
+ result->size - 1, errnop);
} while (!(rv & NS_TERMINATE) && how == nss_lt_all);
OpenPOWER on IntegriCloud