diff options
author | alfred <alfred@FreeBSD.org> | 2002-12-27 08:43:40 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2002-12-27 08:43:40 +0000 |
commit | 2078a4c77423804ba74b5d67e5690f82a3f99a51 (patch) | |
tree | c50bb9234c46b1ad3cd293822d61c9c94dcdfa2b /lib/libc/gen/getcap.c | |
parent | 8c99fb48c77891dd9847117ad025ce08215e71fd (diff) | |
download | FreeBSD-src-2078a4c77423804ba74b5d67e5690f82a3f99a51.zip FreeBSD-src-2078a4c77423804ba74b5d67e5690f82a3f99a51.tar.gz |
Silence casting away constness warnings.
Make cgetmatch's locals const.
Make cdbget take a const string and copy it into a buffer.
Diffstat (limited to 'lib/libc/gen/getcap.c')
-rw-r--r-- | lib/libc/gen/getcap.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/libc/gen/getcap.c b/lib/libc/gen/getcap.c index a0e9803..3dbcd37 100644 --- a/lib/libc/gen/getcap.c +++ b/lib/libc/gen/getcap.c @@ -69,7 +69,7 @@ static size_t topreclen; /* toprec length */ static char *toprec; /* Additional record specified by cgetset() */ static int gottoprec; /* Flag indicating retrieval of toprecord */ -static int cdbget(DB *, char **, char *); +static int cdbget(DB *, char **, const char *); static int getent(char **, u_int *, char **, int, const char *, int, char *); static int nfcmp(char *, char *); @@ -533,19 +533,25 @@ tc_exp: { } static int -cdbget(DB *capdbp, char **bp, char *name) +cdbget(DB *capdbp, char **bp, const char *name) { DBT key, data; + char *namebuf; - key.data = name; - key.size = strlen(name); + namebuf = strdup(name); + if (namebuf == NULL) + return (-2); + key.data = namebuf; + key.size = strlen(namebuf); for (;;) { /* Get the reference. */ switch(capdbp->get(capdbp, &key, &data, 0)) { case -1: + free(namebuf); return (-2); case 1: + free(namebuf); return (-1); } @@ -558,6 +564,7 @@ cdbget(DB *capdbp, char **bp, char *name) } *bp = (char *)data.data + 1; + free(namebuf); return (((char *)(data.data))[0] == TCERR ? 1 : 0); } @@ -568,7 +575,7 @@ cdbget(DB *capdbp, char **bp, char *name) int cgetmatch(const char *buf, const char *name) { - char *np, *bp; + const char *np, *bp; /* * Start search at beginning of record. |