git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23784 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2008-09-07 21:26:53 +00:00
parent 2f980ebc54
commit eb589b6dbb

View File

@@ -72,13 +72,17 @@ get_cell_and_realm (krb5_context context, struct akf_data *d)
f = fopen (AFS_SERVERTHISCELL, "r"); f = fopen (AFS_SERVERTHISCELL, "r");
if (f == NULL) { if (f == NULL) {
ret = errno; ret = errno;
krb5_set_error_message (context, ret, "open %s: %s", AFS_SERVERTHISCELL, krb5_set_error_message (context, ret,
N_("Open ThisCell %s: %s", ""),
AFS_SERVERTHISCELL,
strerror(ret)); strerror(ret));
return ret; return ret;
} }
if (fgets (buf, sizeof(buf), f) == NULL) { if (fgets (buf, sizeof(buf), f) == NULL) {
fclose (f); fclose (f);
krb5_set_error_message (context, EINVAL, "no cell in %s", AFS_SERVERTHISCELL); krb5_set_error_message (context, EINVAL,
N_("No cell in ThisCell file %s", ""),
AFS_SERVERTHISCELL);
return EINVAL; return EINVAL;
} }
buf[strcspn(buf, "\n")] = '\0'; buf[strcspn(buf, "\n")] = '\0';
@@ -86,7 +90,8 @@ get_cell_and_realm (krb5_context context, struct akf_data *d)
d->cell = strdup (buf); d->cell = strdup (buf);
if (d->cell == NULL) { if (d->cell == NULL) {
krb5_set_error_message(context, ENOMEM, "malloc: out of memory"); krb5_set_error_message(context, ENOMEM,
N_("malloc: out of memory", ""));
return ENOMEM; return ENOMEM;
} }
@@ -96,7 +101,8 @@ get_cell_and_realm (krb5_context context, struct akf_data *d)
free (d->cell); free (d->cell);
d->cell = NULL; d->cell = NULL;
fclose (f); fclose (f);
krb5_set_error_message (context, EINVAL, "no realm in %s", krb5_set_error_message (context, EINVAL,
N_("No realm in ThisCell file %s", ""),
AFS_SERVERMAGICKRBCONF); AFS_SERVERMAGICKRBCONF);
return EINVAL; return EINVAL;
} }
@@ -111,7 +117,8 @@ get_cell_and_realm (krb5_context context, struct akf_data *d)
if (d->realm == NULL) { if (d->realm == NULL) {
free (d->cell); free (d->cell);
d->cell = NULL; d->cell = NULL;
krb5_set_error_message(context, ENOMEM, "malloc: out of memory"); krb5_set_error_message(context, ENOMEM,
N_("malloc: out of memory", ""));
return ENOMEM; return ENOMEM;
} }
return 0; return 0;
@@ -128,7 +135,8 @@ akf_resolve(krb5_context context, const char *name, krb5_keytab id)
struct akf_data *d = malloc(sizeof (struct akf_data)); struct akf_data *d = malloc(sizeof (struct akf_data));
if (d == NULL) { if (d == NULL) {
krb5_set_error_message(context, ENOMEM, "malloc: out of memory"); krb5_set_error_message(context, ENOMEM,
N_("malloc: out of memory", ""));
return ENOMEM; return ENOMEM;
} }
@@ -143,7 +151,8 @@ akf_resolve(krb5_context context, const char *name, krb5_keytab id)
free (d->cell); free (d->cell);
free (d->realm); free (d->realm);
free (d); free (d);
krb5_set_error_message(context, ENOMEM, "malloc: out of memory"); krb5_set_error_message(context, ENOMEM,
N_("malloc: out of memory", ""));
return ENOMEM; return ENOMEM;
} }
id->data = d; id->data = d;
@@ -197,7 +206,8 @@ akf_start_seq_get(krb5_context context,
c->fd = open (d->filename, O_RDONLY | O_BINARY | O_CLOEXEC, 0600); c->fd = open (d->filename, O_RDONLY | O_BINARY | O_CLOEXEC, 0600);
if (c->fd < 0) { if (c->fd < 0) {
ret = errno; ret = errno;
krb5_set_error_message(context, ret, "keytab afs keyfil open %s failed: %s", krb5_set_error_message(context, ret,
N_("keytab afs keyfile open %s failed: %s", ""),
d->filename, strerror(ret)); d->filename, strerror(ret));
return ret; return ret;
} }
@@ -250,7 +260,8 @@ akf_next_entry(krb5_context context,
entry->keyblock.keyvalue.data = malloc (8); entry->keyblock.keyvalue.data = malloc (8);
if (entry->keyblock.keyvalue.data == NULL) { if (entry->keyblock.keyvalue.data == NULL) {
krb5_free_principal (context, entry->principal); krb5_free_principal (context, entry->principal);
krb5_set_error_message(context, ENOMEM, "malloc: out of memory"); krb5_set_error_message(context, ENOMEM,
N_("malloc: out of memory", ""));
ret = ENOMEM; ret = ENOMEM;
goto out; goto out;
} }
@@ -307,7 +318,9 @@ akf_add_entry(krb5_context context,
O_RDWR | O_BINARY | O_CREAT | O_EXCL | O_CLOEXEC, 0600); O_RDWR | O_BINARY | O_CREAT | O_EXCL | O_CLOEXEC, 0600);
if (fd < 0) { if (fd < 0) {
ret = errno; ret = errno;
krb5_set_error_message(context, ret, "open(%s): %s", d->filename, krb5_set_error_message(context, ret,
N_("open keyfile(%s): %s", ""),
d->filename,
strerror(ret)); strerror(ret));
return ret; return ret;
} }
@@ -317,7 +330,8 @@ akf_add_entry(krb5_context context,
sp = krb5_storage_from_fd(fd); sp = krb5_storage_from_fd(fd);
if(sp == NULL) { if(sp == NULL) {
close(fd); close(fd);
krb5_set_error_message(context, ENOMEM, "malloc: out of memory"); krb5_set_error_message(context, ENOMEM,
N_("malloc: out of memory", ""));
return ENOMEM; return ENOMEM;
} }
if (created) if (created)
@@ -327,7 +341,9 @@ akf_add_entry(krb5_context context,
ret = errno; ret = errno;
krb5_storage_free(sp); krb5_storage_free(sp);
close(fd); close(fd);
krb5_set_error_message(context, ret, "seek: %s", strerror(ret)); krb5_set_error_message(context, ret,
N_("seeking in keyfile: %s", ""),
strerror(ret));
return ret; return ret;
} }
@@ -350,12 +366,15 @@ akf_add_entry(krb5_context context,
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
ret = krb5_ret_int32(sp, &kvno); ret = krb5_ret_int32(sp, &kvno);
if (ret) { if (ret) {
krb5_set_error_message (context, ret, "Failed to get kvno "); krb5_set_error_message (context, ret,
N_("Failed getting kvno from keyfile", ""));
goto out; goto out;
} }
if(krb5_storage_seek(sp, 8, SEEK_CUR) < 0) { if(krb5_storage_seek(sp, 8, SEEK_CUR) < 0) {
ret = errno; ret = errno;
krb5_set_error_message (context, ret, "seek: %s", strerror(ret)); krb5_set_error_message (context, ret,
N_("Failed seeing in keyfile: %s", ""),
strerror(ret));
goto out; goto out;
} }
if (kvno == entry->vno) { if (kvno == entry->vno) {
@@ -369,26 +388,31 @@ akf_add_entry(krb5_context context,
if(krb5_storage_seek(sp, 0, SEEK_SET) < 0) { if(krb5_storage_seek(sp, 0, SEEK_SET) < 0) {
ret = errno; ret = errno;
krb5_set_error_message (context, ret, "seek: %s", strerror(ret)); krb5_set_error_message (context, ret,
N_("Failed seeing in keyfile: %s", ""),
strerror(ret));
goto out; goto out;
} }
ret = krb5_store_int32(sp, len); ret = krb5_store_int32(sp, len);
if(ret) { if(ret) {
ret = errno; ret = errno;
krb5_set_error_message (context, ret, "keytab keyfile failed new length"); krb5_set_error_message (context, ret,
N_("keytab keyfile failed new length", ""));
return ret; return ret;
} }
if(krb5_storage_seek(sp, (len - 1) * (8 + 4), SEEK_CUR) < 0) { if(krb5_storage_seek(sp, (len - 1) * (8 + 4), SEEK_CUR) < 0) {
ret = errno; ret = errno;
krb5_set_error_message (context, ret, "seek to end: %s", strerror(ret)); krb5_set_error_message (context, ret,
N_("seek to end: %s", ""), strerror(ret));
goto out; goto out;
} }
ret = krb5_store_int32(sp, entry->vno); ret = krb5_store_int32(sp, entry->vno);
if(ret) { if(ret) {
krb5_set_error_message(context, ret, "keytab keyfile failed store kvno"); krb5_set_error_message(context, ret,
N_("keytab keyfile failed store kvno", ""));
goto out; goto out;
} }
ret = krb5_storage_write(sp, entry->keyblock.keyvalue.data, ret = krb5_storage_write(sp, entry->keyblock.keyvalue.data,
@@ -398,7 +422,8 @@ akf_add_entry(krb5_context context,
ret = errno; ret = errno;
else else
ret = ENOTTY; ret = ENOTTY;
krb5_set_error_message(context, ret, "keytab keyfile failed to add key"); krb5_set_error_message(context, ret,
N_("keytab keyfile failed to add key", ""));
goto out; goto out;
} }
ret = 0; ret = 0;