#include <mit-copyright.h>
#include <stdio.h>
-#include <strings.h>
+#include <string.h>
#include <ctype.h>
#include <sys/time.h>
#include <sys/types.h>
whoami = argv[0];
/* Error messages sent one line at a time */
- setlinebuf(stderr);
- setlinebuf(stdout);
+ setvbuf(stderr, NULL, _IOLBF, BUFSIZ);
+ setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
set_com_err_hook(reg_com_err_hook);
/* Initialize com_err error tables */
init_ureg_err_tbl();
init_krb_err_tbl();
init_kadm_err_tbl();
+ initialize_gdss_error_table();
/* Use com_err or output to stderr for all log messages. */
#ifdef DEBUG
/* Zero the mit_id field in the formatted packet structure. This
being zeroed means that no user was found. */
- bzero(message->db.mit_id,sizeof(message->db.mit_id));
+ memset(message->db.mit_id,0,sizeof(message->db.mit_id));
if (status == SUCCESS)
{
if (!inited) {
inited++;
- bzero(krbrealm, sizeof(krbrealm));
+ memset(krbrealm, 0, sizeof(krbrealm));
if (status = krb_get_lrealm(krbrealm, 1)) {
status += krb_err_base;
com_err(whoami, status, " fetching kerberos realm");
#endif DEBUG
if ((status = ureg_kadm_init()) == SUCCESS) {
- bzero((char *)&new, sizeof(new));
+ memset(&new, 0, sizeof(new));
SET_FIELD(KADM_DESKEY, new.fields);
SET_FIELD(KADM_NAME, new.fields);
if (status != KADM_SUCCESS)
com_err(whoami, status, " while reserving principal");
- bzero((char *)&new, sizeof(new));
+ memset(&new, 0, sizeof(new));
}
dest_tkt();
u_long *lkey = (u_long *)key;
if ((status = ureg_kadm_init()) == SUCCESS) {
- bzero((char *)&new, sizeof(new));
+ memset(&new, 0, sizeof(new));
SET_FIELD(KADM_DESKEY, new.fields);
SET_FIELD(KADM_NAME, new.fields);
}
q_argv[U_NAME+1] = login;
q_argv[U_STATE+1] = "7";
+ q_argv[U_SIGNATURE+1] = "";
status = mr_query("update_user_account", U_MODTIME+1, q_argv,
null_callproc, NULL);
switch (status)
status = SUCCESS;
break;
case MR_IN_USE:
+ case MR_NOT_UNIQUE:
status = UREG_LOGIN_USED;
break;
case MR_DEADLOCK:
creds.length = ntohl(*((int *)bp));
bp += sizeof(int);
- bcopy(bp, creds.dat, creds.length);
+ memcpy(creds.dat, bp, creds.length);
creds.mbz = 0;
bp += creds.length;
keys, auth.session, 0);
id = buf;
- passwd = index(buf, ',');
+ passwd = strchr(buf, ',');
*passwd++ = 0;
#ifdef DEBUG
com_err(whoami, 0, "Got id: %s, passwd %d chars", id, strlen(passwd));
#endif
if (strcmp(id, argv[U_MITID + 1])) {
- status = UREG_USER_NOT_FOUND;
- com_err(whoami, status, "IDs mismatch: %s, %s", id, argv[U_MITID + 1]);
- return status;
+ char buf[32];
+
+ EncryptID(buf, id, argv[U_FIRST+1], argv[U_LAST+1]);
+ if (strcmp(buf, argv[U_MITID + 1])) {
+ status = UREG_USER_NOT_FOUND;
+ com_err(whoami, status, "IDs mismatch: %s (%s), %s", id, buf,
+ argv[U_MITID + 1]);
+ return status;
+ }
}
/* now do actual password setting stuff */
return(status);
}
- bzero((char *)&kv, sizeof(kv));
+ memset(&kv, 0, sizeof(kv));
SET_FIELD(KADM_DESKEY, kv.fields);
SET_FIELD(KADM_NAME, kv.fields);
SET_FIELD(KADM_INST, kv.fields);
kv.key_low = htonl(lkey[0]);
kv.key_high = htonl(lkey[1]);
strcpy(kv.name, message->first);
- strcpy(kv.instance, "secure");
+ strcpy(kv.instance, "extra");
if ((status = kadm_add(&kv)) != KADM_SUCCESS) {
com_err(whoami, status, " while creating kerberos principal");