make encoding function independent of krb4 and krb5, enable removal of krb4
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20452 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -779,10 +779,8 @@ suspicious_address (int sock, struct sockaddr *addr)
|
|||||||
* libkrb5 either.
|
* libkrb5 either.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KRB4
|
|
||||||
|
|
||||||
int
|
int
|
||||||
krb_get_int(void *f, uint32_t *to, int size, int lsb)
|
kx_get_int(void *f, uint32_t *to, int size, int lsb)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
unsigned char *from = (unsigned char *)f;
|
unsigned char *from = (unsigned char *)f;
|
||||||
@@ -799,7 +797,7 @@ krb_get_int(void *f, uint32_t *to, int size, int lsb)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
krb_put_int(uint32_t from, void *to, size_t rem, int size)
|
kx_put_int(uint32_t from, void *to, size_t rem, int size)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
unsigned char *p = (unsigned char *)to;
|
unsigned char *p = (unsigned char *)to;
|
||||||
@@ -813,5 +811,3 @@ krb_put_int(uint32_t from, void *to, size_t rem, int size)
|
|||||||
}
|
}
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* !KRB4 */
|
|
||||||
|
24
appl/kx/kx.c
24
appl/kx/kx.c
@@ -227,7 +227,7 @@ doit_passive (kx_context *kc)
|
|||||||
p = msg;
|
p = msg;
|
||||||
*p++ = INIT;
|
*p++ = INIT;
|
||||||
len = strlen(kc->user);
|
len = strlen(kc->user);
|
||||||
p += KRB_PUT_INT (len, p, sizeof(msg) - 1, 4);
|
p += kx_put_int (len, p, sizeof(msg) - 1, 4);
|
||||||
memcpy(p, kc->user, len);
|
memcpy(p, kc->user, len);
|
||||||
p += len;
|
p += len;
|
||||||
*p++ = PASSIVE | (kc->keepalive_flag ? KEEP_ALIVE : 0);
|
*p++ = PASSIVE | (kc->keepalive_flag ? KEEP_ALIVE : 0);
|
||||||
@@ -242,18 +242,18 @@ doit_passive (kx_context *kc)
|
|||||||
p = (u_char *)msg;
|
p = (u_char *)msg;
|
||||||
if (*p == ERROR) {
|
if (*p == ERROR) {
|
||||||
p++;
|
p++;
|
||||||
p += krb_get_int (p, &tmp, 4, 0);
|
p += kx_get_int (p, &tmp, 4, 0);
|
||||||
errx (1, "%s: %.*s", host, (int)tmp, p);
|
errx (1, "%s: %.*s", host, (int)tmp, p);
|
||||||
} else if (*p != ACK) {
|
} else if (*p != ACK) {
|
||||||
errx (1, "%s: strange msg %d", host, *p);
|
errx (1, "%s: strange msg %d", host, *p);
|
||||||
} else
|
} else
|
||||||
p++;
|
p++;
|
||||||
p += krb_get_int (p, &tmp, 4, 0);
|
p += kx_get_int (p, &tmp, 4, 0);
|
||||||
memcpy(display, p, tmp);
|
memcpy(display, p, tmp);
|
||||||
display[tmp] = '\0';
|
display[tmp] = '\0';
|
||||||
p += tmp;
|
p += tmp;
|
||||||
|
|
||||||
p += krb_get_int (p, &tmp, 4, 0);
|
p += kx_get_int (p, &tmp, 4, 0);
|
||||||
memcpy(xauthfile, p, tmp);
|
memcpy(xauthfile, p, tmp);
|
||||||
xauthfile[tmp] = '\0';
|
xauthfile[tmp] = '\0';
|
||||||
p += tmp;
|
p += tmp;
|
||||||
@@ -271,13 +271,13 @@ doit_passive (kx_context *kc)
|
|||||||
p = (u_char *)msg;
|
p = (u_char *)msg;
|
||||||
if (*p == ERROR) {
|
if (*p == ERROR) {
|
||||||
p++;
|
p++;
|
||||||
p += krb_get_int (p, &tmp, 4, 0);
|
p += kx_get_int (p, &tmp, 4, 0);
|
||||||
errx (1, "%s: %.*s", host, (int)tmp, p);
|
errx (1, "%s: %.*s", host, (int)tmp, p);
|
||||||
} else if(*p != NEW_CONN) {
|
} else if(*p != NEW_CONN) {
|
||||||
errx (1, "%s: strange msg %d", host, *p);
|
errx (1, "%s: strange msg %d", host, *p);
|
||||||
} else {
|
} else {
|
||||||
p++;
|
p++;
|
||||||
p += krb_get_int (p, &tmp, 4, 0);
|
p += kx_get_int (p, &tmp, 4, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
++nchild;
|
++nchild;
|
||||||
@@ -372,7 +372,7 @@ doit_active (kx_context *kc)
|
|||||||
*p++ = INIT;
|
*p++ = INIT;
|
||||||
--rem;
|
--rem;
|
||||||
len = strlen(kc->user);
|
len = strlen(kc->user);
|
||||||
tmp = KRB_PUT_INT (len, p, rem, 4);
|
tmp = kx_put_int (len, p, rem, 4);
|
||||||
if (tmp < 0)
|
if (tmp < 0)
|
||||||
return 1;
|
return 1;
|
||||||
p += tmp;
|
p += tmp;
|
||||||
@@ -387,7 +387,7 @@ doit_active (kx_context *kc)
|
|||||||
if (str == NULL || (str = strchr(str, ':')) == NULL)
|
if (str == NULL || (str = strchr(str, ':')) == NULL)
|
||||||
str = ":0";
|
str = ":0";
|
||||||
len = strlen (str);
|
len = strlen (str);
|
||||||
tmp = KRB_PUT_INT (len, p, rem, 4);
|
tmp = kx_put_int (len, p, rem, 4);
|
||||||
if (tmp < 0)
|
if (tmp < 0)
|
||||||
return 1;
|
return 1;
|
||||||
rem -= tmp;
|
rem -= tmp;
|
||||||
@@ -400,7 +400,7 @@ doit_active (kx_context *kc)
|
|||||||
if (str == NULL)
|
if (str == NULL)
|
||||||
str = "";
|
str = "";
|
||||||
len = strlen (str);
|
len = strlen (str);
|
||||||
tmp = KRB_PUT_INT (len, p, rem, 4);
|
tmp = kx_put_int (len, p, rem, 4);
|
||||||
if (tmp < 0)
|
if (tmp < 0)
|
||||||
return 1;
|
return 1;
|
||||||
p += len;
|
p += len;
|
||||||
@@ -420,7 +420,7 @@ doit_active (kx_context *kc)
|
|||||||
uint32_t u32;
|
uint32_t u32;
|
||||||
|
|
||||||
p++;
|
p++;
|
||||||
p += krb_get_int (p, &u32, 4, 0);
|
p += kx_get_int (p, &u32, 4, 0);
|
||||||
errx (1, "%s: %.*s", host, (int)u32, p);
|
errx (1, "%s: %.*s", host, (int)u32, p);
|
||||||
} else if (*p != ACK) {
|
} else if (*p != ACK) {
|
||||||
errx (1, "%s: strange msg %d", host, *p);
|
errx (1, "%s: strange msg %d", host, *p);
|
||||||
@@ -481,13 +481,13 @@ doit_active (kx_context *kc)
|
|||||||
uint32_t val;
|
uint32_t val;
|
||||||
|
|
||||||
p++;
|
p++;
|
||||||
p += krb_get_int (p, &val, 4, 0);
|
p += kx_get_int (p, &val, 4, 0);
|
||||||
errx (1, "%s: %.*s", host, (int)val, p);
|
errx (1, "%s: %.*s", host, (int)val, p);
|
||||||
} else if (*p != NEW_CONN) {
|
} else if (*p != NEW_CONN) {
|
||||||
errx (1, "%s: strange msg %d", host, *p);
|
errx (1, "%s: strange msg %d", host, *p);
|
||||||
} else {
|
} else {
|
||||||
p++;
|
p++;
|
||||||
p += krb_get_int (p, &other_port, 4, 0);
|
p += kx_get_int (p, &other_port, 4, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
++nchild;
|
++nchild;
|
||||||
|
10
appl/kx/kx.h
10
appl/kx/kx.h
@@ -256,12 +256,8 @@ __attribute__ ((format (printf, 3, 4)))
|
|||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
||||||
#ifndef KRB4
|
int
|
||||||
|
kx_get_int(void *f, uint32_t *to, int size, int lsb);
|
||||||
|
|
||||||
int
|
int
|
||||||
krb_get_int(void *f, uint32_t *to, int size, int lsb);
|
kx_put_int(uint32_t from, void *to, size_t rem, int size);
|
||||||
|
|
||||||
int
|
|
||||||
krb_put_int(uint32_t from, void *to, size_t rem, int size);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@@ -75,7 +75,7 @@ fatal (kx_context *kc, int fd, char *format, ...)
|
|||||||
vsnprintf ((char *)p + 4, sizeof(msg) - 5, format, args);
|
vsnprintf ((char *)p + 4, sizeof(msg) - 5, format, args);
|
||||||
syslog (LOG_ERR, "%s", (char *)p + 4);
|
syslog (LOG_ERR, "%s", (char *)p + 4);
|
||||||
len = strlen ((char *)p + 4);
|
len = strlen ((char *)p + 4);
|
||||||
p += KRB_PUT_INT (len, p, 4, 4);
|
p += kx_put_int (len, p, 4, 4);
|
||||||
p += len;
|
p += len;
|
||||||
kx_write (kc, fd, msg, p - msg);
|
kx_write (kc, fd, msg, p - msg);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
@@ -174,7 +174,7 @@ recv_conn (int sock, kx_context *kc,
|
|||||||
if (*p != INIT)
|
if (*p != INIT)
|
||||||
fatal(kc, sock, "Bad message");
|
fatal(kc, sock, "Bad message");
|
||||||
p++;
|
p++;
|
||||||
p += krb_get_int (p, &tmp32, 4, 0);
|
p += kx_get_int (p, &tmp32, 4, 0);
|
||||||
len = min(sizeof(user), tmp32);
|
len = min(sizeof(user), tmp32);
|
||||||
memcpy (user, p, len);
|
memcpy (user, p, len);
|
||||||
p += tmp32;
|
p += tmp32;
|
||||||
@@ -242,12 +242,12 @@ recv_conn (int sock, kx_context *kc,
|
|||||||
kc->user, user);
|
kc->user, user);
|
||||||
umask(077);
|
umask(077);
|
||||||
if (!(flags & PASSIVE)) {
|
if (!(flags & PASSIVE)) {
|
||||||
p += krb_get_int (p, &tmp32, 4, 0);
|
p += kx_get_int (p, &tmp32, 4, 0);
|
||||||
len = min(tmp32, display_size);
|
len = min(tmp32, display_size);
|
||||||
memcpy (display, p, len);
|
memcpy (display, p, len);
|
||||||
display[len] = '\0';
|
display[len] = '\0';
|
||||||
p += tmp32;
|
p += tmp32;
|
||||||
p += krb_get_int (p, &tmp32, 4, 0);
|
p += kx_get_int (p, &tmp32, 4, 0);
|
||||||
len = min(tmp32, xauthfile_size);
|
len = min(tmp32, xauthfile_size);
|
||||||
memcpy (xauthfile, p, len);
|
memcpy (xauthfile, p, len);
|
||||||
xauthfile[len] = '\0';
|
xauthfile[len] = '\0';
|
||||||
@@ -350,7 +350,7 @@ doit_conn (kx_context *kc,
|
|||||||
|
|
||||||
p = msg;
|
p = msg;
|
||||||
*p++ = NEW_CONN;
|
*p++ = NEW_CONN;
|
||||||
p += KRB_PUT_INT (ntohs(port), p, 4, 4);
|
p += kx_put_int (ntohs(port), p, 4, 4);
|
||||||
|
|
||||||
if (kx_write (kc, meta_sock, msg, p - msg) < 0) {
|
if (kx_write (kc, meta_sock, msg, p - msg) < 0) {
|
||||||
syslog (LOG_ERR, "write: %m");
|
syslog (LOG_ERR, "write: %m");
|
||||||
@@ -468,7 +468,7 @@ doit_passive (kx_context *kc,
|
|||||||
--rem;
|
--rem;
|
||||||
|
|
||||||
len = strlen (display);
|
len = strlen (display);
|
||||||
tmp = KRB_PUT_INT (len, p, rem, 4);
|
tmp = kx_put_int (len, p, rem, 4);
|
||||||
if (tmp < 0 || rem < len + 4) {
|
if (tmp < 0 || rem < len + 4) {
|
||||||
syslog (LOG_ERR, "doit: buffer too small");
|
syslog (LOG_ERR, "doit: buffer too small");
|
||||||
cleanup(nsockets, sockets);
|
cleanup(nsockets, sockets);
|
||||||
@@ -482,7 +482,7 @@ doit_passive (kx_context *kc,
|
|||||||
rem -= len;
|
rem -= len;
|
||||||
|
|
||||||
len = strlen (xauthfile);
|
len = strlen (xauthfile);
|
||||||
tmp = KRB_PUT_INT (len, p, rem, 4);
|
tmp = kx_put_int (len, p, rem, 4);
|
||||||
if (tmp < 0 || rem < len + 4) {
|
if (tmp < 0 || rem < len + 4) {
|
||||||
syslog (LOG_ERR, "doit: buffer too small");
|
syslog (LOG_ERR, "doit: buffer too small");
|
||||||
cleanup(nsockets, sockets);
|
cleanup(nsockets, sockets);
|
||||||
|
Reference in New Issue
Block a user