aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2022-03-10 18:04:34 +0000
committerEd Maste <emaste@FreeBSD.org>2022-03-16 16:08:28 +0000
commit2b20327ec9394754c0bac2d83567b972a08e3930 (patch)
tree24feb706b58c563c7fe136f3e6e862c1ca67f17a
parent19837718ab51756183046e5162b8b3b7b3cb8c3d (diff)
downloadsrc-2b20327ec9394754c0bac2d83567b972a08e3930.tar.gz
src-2b20327ec9394754c0bac2d83567b972a08e3930.zip
dumpon: proceed without compression if the kernel lacks support
PR: 252554 Reviewed by: markj MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D34520
-rw-r--r--sbin/dumpon/dumpon.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sbin/dumpon/dumpon.c b/sbin/dumpon/dumpon.c
index a11f07a01200..7d8f81d5eaaf 100644
--- a/sbin/dumpon/dumpon.c
+++ b/sbin/dumpon/dumpon.c
@@ -650,6 +650,15 @@ main(int argc, char *argv[])
error = ioctl(fd, DIOCSKERNELDUMP, kdap);
if (error != 0)
error = errno;
+ if (error == EINVAL && (gzip || zstd)) {
+ /* Retry without compression in case kernel lacks support. */
+ kdap->kda_compression = KERNELDUMP_COMP_NONE;
+ error = ioctl(fd, DIOCSKERNELDUMP, kdap);
+ if (error == 0)
+ warnx("Compression disabled; kernel may lack gzip or zstd support.");
+ else
+ error = errno;
+ }
explicit_bzero(kdap->kda_encryptedkey, kdap->kda_encryptedkeysize);
free(kdap->kda_encryptedkey);
explicit_bzero(kdap, sizeof(*kdap));