diff options
author | Ed Maste <emaste@FreeBSD.org> | 2022-03-10 18:04:34 +0000 |
---|---|---|
committer | Ed Maste <emaste@FreeBSD.org> | 2022-03-16 16:08:28 +0000 |
commit | 2b20327ec9394754c0bac2d83567b972a08e3930 (patch) | |
tree | 24feb706b58c563c7fe136f3e6e862c1ca67f17a /sbin/dumpon | |
parent | 19837718ab51756183046e5162b8b3b7b3cb8c3d (diff) |
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
Diffstat (limited to 'sbin/dumpon')
-rw-r--r-- | sbin/dumpon/dumpon.c | 9 |
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)); |