summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/getgrent.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/gen/getgrent.c')
-rw-r--r--lib/libc/gen/getgrent.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/libc/gen/getgrent.c b/lib/libc/gen/getgrent.c
index e2cefb9..47d229e 100644
--- a/lib/libc/gen/getgrent.c
+++ b/lib/libc/gen/getgrent.c
@@ -473,7 +473,7 @@ static int
_getypgroup(struct group *gr, const char *name, char *map)
{
char *result, *s;
- static char resultbuf[1024];
+ static char resultbuf[YPMAXRECORD + 2];
int resultlen;
if(!_gr_yp_domain) {
@@ -490,6 +490,7 @@ _getypgroup(struct group *gr, const char *name, char *map)
if(resultlen >= sizeof resultbuf) return 0;
strncpy(resultbuf, result, resultlen);
+ resultbuf[resultlen] = '\0';
free(result);
return(_gr_breakout_yp(gr, resultbuf));
@@ -502,7 +503,7 @@ _nextypgroup(struct group *gr)
static char *key;
static int keylen;
char *lastkey, *result;
- static char resultbuf[1024];
+ static char resultbuf[YPMAXRECORD + 2];
int resultlen;
int rv;
@@ -537,7 +538,8 @@ unpack:
goto tryagain;
}
- strcpy(resultbuf, result);
+ strncpy(resultbuf, result, resultlen);
+ resultbuf[resultlen] = '\0';
free(result);
if((result = strchr(resultbuf, '\n')) != NULL)
*result = '\0';
OpenPOWER on IntegriCloud