Go to file
Chuck Tuffli a8fc1b8743
Fix ubsan: shift exponent is too large
When running libzpool with the Undefined Behavior Sanitizer (ubsan)
enabled, a zpool create causes a run-time error:

    module/zfs/vdev_label.c:600:14: runtime error: shift exponent 64 is
    too large for 64-bit type 'long long unsigned int'`

in vdev_config_generate()

Fix is to convert vdev_removal_max_span to its base-2 logarithm, using
highbit64(), and then compare the "shifts".

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Chuck Tuffli <ctuffli@gmail.com>
Closes #9744
Closes #11024
2020-10-08 16:37:27 -07:00
.github Document branching structure 2020-09-28 13:23:49 -07:00
cmd Make dbufstat work on FreeBSD 2020-10-08 09:40:23 -07:00
config Fix CONFIG_DEBUG_LOCK_ALLOC configure check 2020-09-28 16:42:54 -07:00
contrib Add intel_QAT patches 2020-09-30 13:17:30 -07:00
etc Fix another dependency loop 2020-08-28 10:17:14 -07:00
include FreeBSD: Sort out kernel FPU headers for 12.1-REL 2020-10-02 17:48:45 -07:00
lib libzfs_sendrecv: zfs_send: remove unused pipefd and tid variables 2020-10-08 09:43:51 -07:00
man Note that keys must be loaded for 'zpool remove' 2020-09-28 16:11:57 -07:00
module Fix ubsan: shift exponent is too large 2020-10-08 16:37:27 -07:00
rpm zfs label bootenv should store data as nvlist 2020-09-15 15:42:27 -07:00
scripts Update issue templates, commitcheck and Contributing.md 2020-09-23 09:53:26 -07:00
tests Make dbufstat work on FreeBSD 2020-10-08 09:40:23 -07:00
udev Centralize variable substitution 2020-07-14 17:33:44 -07:00
.editorconfig Add an .editorconfig; document git whitespace settings 2020-01-27 13:32:52 -08:00
.gitignore Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
AUTHORS Add zstd support to zfs 2020-08-20 10:30:06 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md 2019-04-30 10:58:45 -07:00
configure.ac Drop references when skipping dmu_send due to EXDEV 2020-09-30 13:19:49 -07:00
copy-builtin Move zfs_gitrev.h to build directory 2020-06-24 18:19:28 -07:00
COPYRIGHT Fix typos 2020-06-09 21:24:09 -07:00
cppcheck-suppressions.txt Import ZStandard v1.4.5 2020-08-20 10:30:06 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
Makefile.am Silence 'make checkbashisms' 2020-08-20 13:45:47 -07:00
META Tag 2.0.0-rc1 2020-08-25 13:11:25 -07:00
NEWS Fix NEWS file 2020-08-26 21:44:41 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md docs: update README's installation link 2020-10-08 09:33:53 -07:00
TEST Remove CI builder customization from TEST 2020-03-16 10:46:03 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

img

OpenZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community. This repository contains the code for running OpenZFS on Linux and FreeBSD.

codecov coverity

Official Resources

Installation

Full documentation for installing OpenZFS on your favorite operating system can be found at the Getting Started Page.

Contribute & Develop

We have a separate document with contribution guidelines.

We have a Code of Conduct.

Release

OpenZFS is released under a CDDL license. For more details see the NOTICE, LICENSE and COPYRIGHT files; UCRL-CODE-235197

Supported Kernels

  • The META file contains the officially recognized supported Linux kernel versions.
  • Supported FreeBSD versions are 12-STABLE and 13-CURRENT.