[27624] in CVS-changelog-for-Kerberos-V5
krb5 commit: Clean up getclhoststr in ipropd_svc.c
daemon@ATHENA.MIT.EDU (Greg Hudson)
Thu Mar 21 02:00:08 2013
Date: Thu, 21 Mar 2013 02:00:02 -0400
From: Greg Hudson <ghudson@mit.edu>
Message-Id: <201303210600.r2L602BP030451@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu
https://github.com/krb5/krb5/commit/093704b74884dca424ffe5a88765e3c513f71ecb
commit 093704b74884dca424ffe5a88765e3c513f71ecb
Author: Greg Hudson <ghudson@mit.edu>
Date: Thu Mar 21 01:48:22 2013 -0400
Clean up getclhoststr in ipropd_svc.c
Based on a patch from Xi Wang <xi@mit.edu>.
src/kadmin/server/ipropd_svc.c | 26 +++++++++-----------------
1 files changed, 9 insertions(+), 17 deletions(-)
diff --git a/src/kadmin/server/ipropd_svc.c b/src/kadmin/server/ipropd_svc.c
index ca96295..008bff0 100644
--- a/src/kadmin/server/ipropd_svc.c
+++ b/src/kadmin/server/ipropd_svc.c
@@ -239,24 +239,16 @@ out:
* Return arg cl str ptr on success, else NULL.
*/
static char *
-getclhoststr(char *clprinc, char *cl, size_t len)
+getclhoststr(const char *clprinc, char *cl, size_t len)
{
- char *s;
- if ((s = strchr(clprinc, '/')) != NULL) {
- /* XXX "!++s"? */
- if (!++s)
- return NULL;
- if (strlcpy(cl, s, len) >= len)
- return NULL;
- /* XXX Copy with @REALM first, with bounds check, then
- chop off the realm?? */
- if ((s = strchr(cl, '@')) != NULL) {
- *s = '\0';
- return (cl); /* success */
- }
- }
-
- return (NULL);
+ const char *s, *e;
+
+ if ((s = strchr(clprinc, '/')) == NULL || (e = strchr(++s, '@')) == NULL ||
+ (size_t)(e - s) >= len)
+ return NULL;
+ memcpy(cl, s, e - s);
+ cl[e - s] = '\0';
+ return (cl);
}
static kdb_fullresync_result_t *
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5