svn commit: r330706 - user/markj/netdump/sys/netinet/netdump

Mark Johnston markj at FreeBSD.org
Fri Mar 9 22:34:44 UTC 2018


Author: markj
Date: Fri Mar  9 22:34:43 2018
New Revision: 330706
URL: https://svnweb.freebsd.org/changeset/base/330706

Log:
  Add a new packet type for the symmetric key used in encrypted dumps.

Modified:
  user/markj/netdump/sys/netinet/netdump/netdump.h
  user/markj/netdump/sys/netinet/netdump/netdump_client.c

Modified: user/markj/netdump/sys/netinet/netdump/netdump.h
==============================================================================
--- user/markj/netdump/sys/netinet/netdump/netdump.h	Fri Mar  9 21:32:07 2018	(r330705)
+++ user/markj/netdump/sys/netinet/netdump/netdump.h	Fri Mar  9 22:34:43 2018	(r330706)
@@ -44,6 +44,7 @@
 #define	NETDUMP_FINISHED	2	/* Send after finishing a dump. */
 #define	NETDUMP_VMCORE		3	/* Contains dump data. */
 #define	NETDUMP_KDH		4	/* Contains kernel dump header. */
+#define	NETDUMP_EKCD_KEY	5	/* Contains kernel dump key. */
 
 #define	NETDUMP_DATASIZE	4096	/* Arbitrary packet size limit. */
 

Modified: user/markj/netdump/sys/netinet/netdump/netdump_client.c
==============================================================================
--- user/markj/netdump/sys/netinet/netdump/netdump_client.c	Fri Mar  9 21:32:07 2018	(r330705)
+++ user/markj/netdump/sys/netinet/netdump/netdump_client.c	Fri Mar  9 22:34:43 2018	(r330706)
@@ -1006,14 +1006,17 @@ static int
 netdump_write_headers(struct dumperinfo *di, struct kerneldumpheader *kdh,
     void *key, uint32_t keysize)
 {
+	int error;
 
-	if (sizeof(*kdh) + keysize > sizeof(nd_buf))
-		return (EINVAL);
-
 	memcpy(nd_buf, kdh, sizeof(*kdh));
-	if (key != NULL)
-		memcpy(nd_buf + sizeof(*kdh), key, keysize);
-	return (netdump_send(NETDUMP_KDH, 0, nd_buf, sizeof(*kdh) + keysize));
+	error = netdump_send(NETDUMP_KDH, 0, nd_buf, sizeof(*kdh));
+	if (error == 0 && keysize > 0) {
+		if (keysize > sizeof(nd_buf))
+			return (EINVAL);
+		memcpy(nd_buf, key, keysize);
+		error = netdump_send(NETDUMP_EKCD_KEY, 0, nd_buf, keysize);
+	}
+	return (error);
 }
 
 /*


More information about the svn-src-user mailing list