socsvn commit: r286795 - in soc2013/def/crashdump-head: sbin/cryptcore sys/kern sys/sys
def at FreeBSD.org
def at FreeBSD.org
Sun Jun 7 16:23:16 UTC 2015
Author: def
Date: Sun Jun 7 16:23:14 2015
New Revision: 286795
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=286795
Log:
Let kernel dump key size be size_t.
Modified:
soc2013/def/crashdump-head/sbin/cryptcore/cryptcore.c
soc2013/def/crashdump-head/sys/kern/kern_shutdown.c
soc2013/def/crashdump-head/sys/sys/kerneldump.h
Modified: soc2013/def/crashdump-head/sbin/cryptcore/cryptcore.c
==============================================================================
--- soc2013/def/crashdump-head/sbin/cryptcore/cryptcore.c Sun Jun 7 15:54:57 2015 (r286794)
+++ soc2013/def/crashdump-head/sbin/cryptcore/cryptcore.c Sun Jun 7 16:23:14 2015 (r286795)
@@ -146,8 +146,8 @@
* From this moment on keys have to be erased before exit.
*/
privkeysize = RSA_size(privkey);
- if (privkeysize != kdk->kdk_encryptedkeylen) {
- pjdlog_error("RSA modulus size mismatch: equals %db and should be %db.",
+ if (privkeysize != (int)kdk->kdk_encryptedkeylen) {
+ pjdlog_error("RSA modulus size mismatch: equals %db and should be %lub.",
8 * privkeysize, 8 * kdk->kdk_encryptedkeylen);
goto failed;
}
Modified: soc2013/def/crashdump-head/sys/kern/kern_shutdown.c
==============================================================================
--- soc2013/def/crashdump-head/sys/kern/kern_shutdown.c Sun Jun 7 15:54:57 2015 (r286794)
+++ soc2013/def/crashdump-head/sys/kern/kern_shutdown.c Sun Jun 7 16:23:14 2015 (r286795)
@@ -139,7 +139,6 @@
SYSCTL_INT(_kern_shutdown, OID_AUTO, show_busybufs, CTLFLAG_RW,
&show_busybufs, 0, "");
-#ifdef EKCD
MALLOC_DEFINE(M_KDK, "kerneldumpkey", "Kernel dump key structure");
static struct kerneldumpcrypto {
@@ -155,6 +154,7 @@
static struct kerneldumpkey *dumpkey;
+#ifdef EKCD
static int kerneldump_sysctl_keymaterial(SYSCTL_HANDLER_ARGS);
static int kerneldump_sysctl_encryptedkey(SYSCTL_HANDLER_ARGS);
@@ -905,7 +905,7 @@
kerneldump_sysctl_encryptedkey(SYSCTL_HANDLER_ARGS)
{
struct kerneldumpkey *kdk;
- size_t kdksize;
+ size_t encryptedkeylen, kdksize;
int error;
if (req->newptr == NULL) {
@@ -916,8 +916,10 @@
dumpkey->kdk_encryptedkeylen, req));
}
- kdksize = ((sizeof(*kdk) + req->newlen + KERNELDUMP_BLOCK_SIZE - 1) /
- KERNELDUMP_BLOCK_SIZE) * KERNELDUMP_BLOCK_SIZE;
+ encryptedkeylen = req->newlen;
+ kdksize = ((sizeof(*kdk) + encryptedkeylen +
+ KERNELDUMP_BLOCK_SIZE - 1) / KERNELDUMP_BLOCK_SIZE) *
+ KERNELDUMP_BLOCK_SIZE;
kdk = (struct kerneldumpkey *)malloc(kdksize, M_KDK, M_WAITOK);
if (kdk == NULL)
@@ -925,7 +927,7 @@
kdk->kdk_size = kdksize;
bcopy(dumpcrypto.kdc_iv, kdk->kdk_iv, sizeof(kdk->kdk_iv));
- kdk->kdk_encryptedkeylen = req->newlen;
+ kdk->kdk_encryptedkeylen = encryptedkeylen;
error = sysctl_handle_opaque(oidp, kdk->kdk_encryptedkey,
kdk->kdk_encryptedkeylen, req);
@@ -1064,6 +1066,7 @@
length));
}
#endif
+
return (di->dumper(di->priv, virtual, physical, offset, length));
}
Modified: soc2013/def/crashdump-head/sys/sys/kerneldump.h
==============================================================================
--- soc2013/def/crashdump-head/sys/sys/kerneldump.h Sun Jun 7 15:54:57 2015 (r286794)
+++ soc2013/def/crashdump-head/sys/sys/kerneldump.h Sun Jun 7 16:23:14 2015 (r286795)
@@ -93,9 +93,9 @@
};
struct kerneldumpkey {
- uint32_t kdk_size;
+ size_t kdk_size;
uint8_t kdk_iv[KERNELDUMP_IV_SIZE];
- int kdk_encryptedkeylen;
+ size_t kdk_encryptedkeylen;
uint8_t kdk_encryptedkey[];
};
More information about the svn-soc-all
mailing list