git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-2.6.27' of git://git.marvell.com/mv643xx_eth into upstream-next
[pandora-kernel.git]
/
security
/
keys
/
request_key_auth.c
diff --git
a/security/keys/request_key_auth.c
b/security/keys/request_key_auth.c
index
e42b525
..
bd237b0
100644
(file)
--- a/
security/keys/request_key_auth.c
+++ b/
security/keys/request_key_auth.c
@@
-15,6
+15,7
@@
#include <linux/sched.h>
#include <linux/err.h>
#include <linux/seq_file.h>
#include <linux/sched.h>
#include <linux/err.h>
#include <linux/seq_file.h>
+#include <linux/slab.h>
#include <asm/uaccess.h>
#include "internal.h"
#include <asm/uaccess.h>
#include "internal.h"
@@
-61,7
+62,7
@@
static void request_key_auth_describe(const struct key *key,
seq_puts(m, "key:");
seq_puts(m, key->description);
seq_puts(m, "key:");
seq_puts(m, key->description);
- seq_printf(m, " pid:%d ci:%zu", rka->pid,
strlen(rka->callout_info)
);
+ seq_printf(m, " pid:%d ci:%zu", rka->pid,
rka->callout_len
);
} /* end request_key_auth_describe() */
} /* end request_key_auth_describe() */
@@
-77,7
+78,7
@@
static long request_key_auth_read(const struct key *key,
size_t datalen;
long ret;
size_t datalen;
long ret;
- datalen =
strlen(rka->callout_info)
;
+ datalen =
rka->callout_len
;
ret = datalen;
/* we can return the data as is */
ret = datalen;
/* we can return the data as is */
@@
-137,7
+138,8
@@
static void request_key_auth_destroy(struct key *key)
* create an authorisation token for /sbin/request-key or whoever to gain
* access to the caller's security data
*/
* create an authorisation token for /sbin/request-key or whoever to gain
* access to the caller's security data
*/
-struct key *request_key_auth_new(struct key *target, const char *callout_info)
+struct key *request_key_auth_new(struct key *target, const void *callout_info,
+ size_t callout_len)
{
struct request_key_auth *rka, *irka;
struct key *authkey = NULL;
{
struct request_key_auth *rka, *irka;
struct key *authkey = NULL;
@@
-152,7
+154,7
@@
struct key *request_key_auth_new(struct key *target, const char *callout_info)
kleave(" = -ENOMEM");
return ERR_PTR(-ENOMEM);
}
kleave(" = -ENOMEM");
return ERR_PTR(-ENOMEM);
}
- rka->callout_info = kmalloc(
strlen(callout_info) + 1
, GFP_KERNEL);
+ rka->callout_info = kmalloc(
callout_len
, GFP_KERNEL);
if (!rka->callout_info) {
kleave(" = -ENOMEM");
kfree(rka);
if (!rka->callout_info) {
kleave(" = -ENOMEM");
kfree(rka);
@@
-186,7
+188,8
@@
struct key *request_key_auth_new(struct key *target, const char *callout_info)
}
rka->target_key = key_get(target);
}
rka->target_key = key_get(target);
- strcpy(rka->callout_info, callout_info);
+ memcpy(rka->callout_info, callout_info, callout_len);
+ rka->callout_len = callout_len;
/* allocate the auth key */
sprintf(desc, "%x", target->serial);
/* allocate the auth key */
sprintf(desc, "%x", target->serial);