svn commit: r218663 - head/sys/geom/eli
Marcel Moolenaar
marcel at FreeBSD.org
Sun Feb 13 19:34:49 UTC 2011
Author: marcel
Date: Sun Feb 13 19:34:48 2011
New Revision: 218663
URL: http://svn.freebsd.org/changeset/base/218663
Log:
Use the preload_fetch_addr() and preload_fetch_size() convenience
functions to obtain the address and size of the preloaded key files.
Sponsored by: Juniper Networks.
Modified:
head/sys/geom/eli/g_eli.c
Modified: head/sys/geom/eli/g_eli.c
==============================================================================
--- head/sys/geom/eli/g_eli.c Sun Feb 13 19:26:51 2011 (r218662)
+++ head/sys/geom/eli/g_eli.c Sun Feb 13 19:34:48 2011 (r218663)
@@ -981,8 +981,9 @@ g_eli_destroy_geom(struct gctl_req *req
static int
g_eli_keyfiles_load(struct hmac_ctx *ctx, const char *provider)
{
- u_char *keyfile, *data, *size;
+ u_char *keyfile, *data;
char *file, name[64];
+ size_t size;
int i;
for (i = 0; ; i++) {
@@ -990,15 +991,14 @@ g_eli_keyfiles_load(struct hmac_ctx *ctx
keyfile = preload_search_by_type(name);
if (keyfile == NULL)
return (i); /* Return number of loaded keyfiles. */
- data = preload_search_info(keyfile, MODINFO_ADDR);
+ data = preload_fetch_addr(keyfile);
if (data == NULL) {
G_ELI_DEBUG(0, "Cannot find key file data for %s.",
name);
return (0);
}
- data = *(void **)data;
- size = preload_search_info(keyfile, MODINFO_SIZE);
- if (size == NULL) {
+ size = preload_fetch_size(keyfile);
+ if (size == 0) {
G_ELI_DEBUG(0, "Cannot find key file size for %s.",
name);
return (0);
@@ -1011,15 +1011,16 @@ g_eli_keyfiles_load(struct hmac_ctx *ctx
}
G_ELI_DEBUG(1, "Loaded keyfile %s for %s (type: %s).", file,
provider, name);
- g_eli_crypto_hmac_update(ctx, data, *(size_t *)size);
+ g_eli_crypto_hmac_update(ctx, data, size);
}
}
static void
g_eli_keyfiles_clear(const char *provider)
{
- u_char *keyfile, *data, *size;
+ u_char *keyfile, *data;
char name[64];
+ size_t size;
int i;
for (i = 0; ; i++) {
@@ -1027,12 +1028,10 @@ g_eli_keyfiles_clear(const char *provide
keyfile = preload_search_by_type(name);
if (keyfile == NULL)
return;
- data = preload_search_info(keyfile, MODINFO_ADDR);
- size = preload_search_info(keyfile, MODINFO_SIZE);
- if (data == NULL || size == NULL)
- continue;
- data = *(void **)data;
- bzero(data, *(size_t *)size);
+ data = preload_fetch_addr(keyfile);
+ size = preload_fetch_size(keyfile);
+ if (data != NULL && size != 0)
+ bzero(data, size);
}
}
More information about the svn-src-head
mailing list