Date: Fri, 9 Mar 2018 22:34:43 +0000 (UTC) From: Mark Johnston <markj@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r330706 - user/markj/netdump/sys/netinet/netdump Message-ID: <201803092234.w29MYhgn063586@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); } /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803092234.w29MYhgn063586>