aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/krb/parse.c
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-05-01 14:23:44 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-05-01 14:23:44 +0000
commit7071588516dc99f6e4a0e2f79dd15b0f50c9b1d5 (patch)
treec1349be7052c5261705fef9beaa036cd02ac292e /src/lib/krb5/krb/parse.c
parent5b6f17280ecc3d9d4557042a87aef3e8d4434a15 (diff)
downloadkrb5-7071588516dc99f6e4a0e2f79dd15b0f50c9b1d5.zip
krb5-7071588516dc99f6e4a0e2f79dd15b0f50c9b1d5.tar.gz
krb5-7071588516dc99f6e4a0e2f79dd15b0f50c9b1d5.tar.bz2
rearrange code to eliminate null-deref problem
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@636 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/parse.c')
-rw-r--r--src/lib/krb5/krb/parse.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/krb5/krb/parse.c b/src/lib/krb5/krb/parse.c
index 37b149c..f713180 100644
--- a/src/lib/krb5/krb/parse.c
+++ b/src/lib/krb5/krb/parse.c
@@ -114,7 +114,7 @@ krb5_principal *principal;
for (ncomponents = 1, cp = name,
endcomponent = index(name, COMPONENT_SEP);
cp && cp <= realmptr;
- ncomponents++, endcomponent = index(cp, COMPONENT_SEP)) {
+ ncomponents++) {
if (endcomponent && endcomponent < realmptr) {
retprinc[ncomponents]->length = endcomponent - cp;
@@ -135,9 +135,10 @@ krb5_principal *principal;
strncpy(retprinc[ncomponents]->data, cp,
retprinc[ncomponents]->length);
retprinc[ncomponents]->data[retprinc[ncomponents]->length] = '\0';
- if (endcomponent)
+ if (endcomponent) {
cp = endcomponent + 1; /* move past divider */
- else
+ endcomponent = index(cp, COMPONENT_SEP);
+ } else
cp = 0;
}
*principal = retprinc;