| version 1.6, 1994/01/04 05:36:22 |
version 1.7, 1994/03/06 07:54:35 |
| Line 195 getent(cap, len, db_array, fd, name, dep |
|
| Line 195 getent(cap, len, db_array, fd, name, dep |
|
| DB *capdbp; |
DB *capdbp; |
| DBT key, data; |
DBT key, data; |
| register char *r_end, *rp, **db_p; |
register char *r_end, *rp, **db_p; |
| int myfd, eof, foundit, retval; |
int myfd, eof, foundit, retval, clen; |
| char *record; |
char *record, *cbuf; |
| int tc_not_resolved; |
int tc_not_resolved; |
| char pbuf[_POSIX_PATH_MAX]; |
char pbuf[_POSIX_PATH_MAX]; |
| |
|
| Line 251 getent(cap, len, db_array, fd, name, dep |
|
| Line 251 getent(cap, len, db_array, fd, name, dep |
|
| != NULL) { |
!= NULL) { |
| free(record); |
free(record); |
| retval = cdbget(capdbp, &record, name); |
retval = cdbget(capdbp, &record, name); |
| if (capdbp->close(capdbp) < 0) |
clen = strlen(record); |
| |
if ((cbuf = malloc(clen + 1)) == NULL) { |
| |
errno = ENOMEM; |
| |
return (-2); |
| |
} |
| |
memmove(cbuf, record, clen + 1); |
| |
if (capdbp->close(capdbp) < 0) { |
| |
free(cbuf); |
| return (-2); |
return (-2); |
| *len = strlen(record); |
} |
| *cap = malloc(*len + 1); |
*len = clen; |
| memmove(*cap, record, *len + 1); |
*cap = cbuf; |
| return (retval); |
return (retval); |
| } else { |
} else { |
| fd = open(*db_p, O_RDONLY, 0); |
fd = open(*db_p, O_RDONLY, 0); |