krbPrinc = ctx->acceptorName->krbPrincipal;
GSSEAP_ASSERT(krbPrinc != NULL);
- GSSEAP_ASSERT(KRB_PRINC_LENGTH(krbPrinc) >= 2);
+ GSSEAP_ASSERT(KRB_PRINC_LENGTH(krbPrinc) >= 1);
/* Acceptor-Service-Name */
krbPrincComponentToGssBuffer(krbPrinc, 0, &nameBuf);
return major;
/* Acceptor-Host-Name */
- krbPrincComponentToGssBuffer(krbPrinc, 1, &nameBuf);
-
- major = gssEapRadiusAddAvp(minor, req,
- PW_GSS_ACCEPTOR_HOST_NAME,
- 0,
- &nameBuf);
- if (GSS_ERROR(major))
- return major;
-
+ if (KRB_PRINC_LENGTH(krbPrinc) >= 2) {
+ krbPrincComponentToGssBuffer(krbPrinc, 1, &nameBuf);
+
+ major = gssEapRadiusAddAvp(minor, req,
+ PW_GSS_ACCEPTOR_HOST_NAME,
+ 0,
+ &nameBuf);
+ if (GSS_ERROR(major))
+ return major;
+ }
if (KRB_PRINC_LENGTH(krbPrinc) > 2) {
/* Acceptor-Service-Specific */
*minor = krbPrincUnparseServiceSpecifics(krbContext,
name->krbPrincipal = *principal;
*principal = NULL;
- if (KRB_PRINC_LENGTH(name->krbPrincipal) > 1) {
+ if (KRB_PRINC_LENGTH(name->krbPrincipal) >= 1) {
name->flags |= NAME_FLAG_SERVICE;
- } else {
+ }
+ if (KRB_PRINC_LENGTH(name->krbPrincipal) == 1) {
name->flags |= NAME_FLAG_NAI;
}