fix doors support, fix signedness warnings
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15278 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -363,7 +363,7 @@ do_request(void *buf, size_t len, struct descr *d)
|
||||
len[2] = (reply.length >> 8) & 0xff;
|
||||
len[3] = reply.length & 0xff;
|
||||
|
||||
iov[0].iov_base = len;
|
||||
iov[0].iov_base = (void*)len;
|
||||
iov[0].iov_len = 4;
|
||||
iov[1].iov_base = reply.data;
|
||||
iov[1].iov_len = reply.length;
|
||||
@@ -532,13 +532,14 @@ handle_stream(struct descr *d, int index, int min_free)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_DOORS
|
||||
#ifdef HAVE_DOOR_CREATE
|
||||
|
||||
void
|
||||
kcm_door_server(void *cookie, char *argp, size_t arg_size,
|
||||
door_desc_t *dp, uint_t n_desc)
|
||||
{
|
||||
kcm_client peercred;
|
||||
door_cred_t cred;
|
||||
krb5_error_code ret;
|
||||
krb5_data reply;
|
||||
size_t length;
|
||||
@@ -549,16 +550,16 @@ kcm_door_server(void *cookie, char *argp, size_t arg_size,
|
||||
p = NULL;
|
||||
length = 0;
|
||||
|
||||
if (door_cred(&info) != 0) {
|
||||
if (door_cred(&cred) != 0) {
|
||||
kcm_log(0, "door_cred failed with %s", strerror(errno));
|
||||
goto out;
|
||||
}
|
||||
|
||||
peercred.uid = info.dc_euid;
|
||||
peercred.gid = info.dc_egid;
|
||||
peercred.pid = info.dc_pid;
|
||||
peercred.uid = cred.dc_euid;
|
||||
peercred.gid = cred.dc_egid;
|
||||
peercred.pid = cred.dc_pid;
|
||||
|
||||
ret = process_request(buf, len, &reply, &peercred);
|
||||
ret = process_request((unsigned char*)argp, arg_size, &reply, &peercred);
|
||||
if (reply.length != 0) {
|
||||
p = alloca(reply.length); /* XXX don't use alloca */
|
||||
if (p) {
|
||||
@@ -569,11 +570,9 @@ kcm_door_server(void *cookie, char *argp, size_t arg_size,
|
||||
}
|
||||
|
||||
out:
|
||||
return door_return(p, length, NULL, 0);
|
||||
door_return(p, length, NULL, 0);
|
||||
}
|
||||
|
||||
static char *door_path;
|
||||
|
||||
static void
|
||||
kcm_setup_door(void)
|
||||
{
|
||||
@@ -600,7 +599,7 @@ kcm_setup_door(void)
|
||||
krb5_err(kcm_context, 1, errno, "Failed to attach door");
|
||||
|
||||
}
|
||||
#endif /* HAVE_DOORS */
|
||||
#endif /* HAVE_DOOR_CREATE */
|
||||
|
||||
|
||||
void
|
||||
@@ -609,7 +608,7 @@ kcm_loop(void)
|
||||
struct descr *d;
|
||||
int ndescr;
|
||||
|
||||
#ifdef HAVE_DOORS
|
||||
#ifdef HAVE_DOOR_CREATE
|
||||
kcm_setup_door();
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user