(main): check that the ticket was for `hprop/' for paranoid reasons

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8790 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
2000-07-23 21:32:42 +00:00
parent 909223a352
commit b1564c84c3

View File

@@ -252,6 +252,8 @@ main(int argc, char **argv)
struct sockaddr *sa = (struct sockaddr *)&ss; struct sockaddr *sa = (struct sockaddr *)&ss;
int sin_len = sizeof(ss); int sin_len = sizeof(ss);
char addr_name[256]; char addr_name[256];
krb5_ticket *ticket;
char *server;
fd = STDIN_FILENO; fd = STDIN_FILENO;
if (inetd_flag == -1) { if (inetd_flag == -1) {
@@ -292,10 +294,19 @@ main(int argc, char **argv)
} }
ret = krb5_recvauth(context, &ac, &fd, HPROP_VERSION, NULL, ret = krb5_recvauth(context, &ac, &fd, HPROP_VERSION, NULL,
0, keytab, NULL); 0, keytab, &ticket);
if(ret) if(ret)
krb5_err(context, 1, ret, "krb5_recvauth"); krb5_err(context, 1, ret, "krb5_recvauth");
ret = krb5_unparse_name(context, ticket->server, &server);
if (ret)
krb5_err(context, 1, ret, "krb5_unparse_name");
if (strncmp(server, "hprop/", 5) != 0)
krb5_errx(context, 1, "ticket not for hprop (%s)", server);
free(server);
krb5_free_ticket (context, ticket);
ret = krb5_auth_getauthenticator(context, ac, &authent); ret = krb5_auth_getauthenticator(context, ac, &authent);
if(ret) if(ret)
krb5_err(context, 1, ret, "krb5_auth_getauthenticator"); krb5_err(context, 1, ret, "krb5_auth_getauthenticator");