Go to file
Attila Fülöp 7cc5cb8083 pam_zfs_key: malloc and mlock/munlock won't match
mlock(2) and munlock(2) operate on memory pages whereas malloc(3)
does not. So if you munlock(2) a malloced memory region, the whole
page containing it is freed. Since this page may contain another
malloced and mlocked memory region, used as a password buffer by a
concurrent running instance of pam_zfs_key, there is a slight chance
of leaking passwords. By using mmap(2) we avoid such problems since
it will return whole pages on page aligned addresses.

Although the above concern may be mostly academical, it is still
better to use mmap(2) for allocating memory since the FreeBSD
documentation suggests to call mlock(2) and munlock(2) on page
aligned addresses, and other implementations even require it.

While here, remove duplicate code in alloc_pw_string() by calling
alloc_pw_size().

Reviewed-by: Felix Dörre <felix@dogcraft.de>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Attila Fülöp <attila@fueloep.org>
Closes #12665
2021-10-22 11:42:34 -07:00
.github CI: don't install abigail-tools 2021-09-02 10:02:27 -07:00
cmd vdev_id: Fix enclosure_symlinks feature 2021-10-20 15:48:04 -07:00
config Use fallthrough macro 2021-09-14 10:17:54 -06:00
contrib pam_zfs_key: malloc and mlock/munlock won't match 2021-10-22 11:42:34 -07:00
etc systemd: import: expand $ZPOOL_IMPORT_OPTS correctly 2021-06-14 09:48:53 -06:00
include Remove FreeBSD's local copy of the dmu_buf_hold_array() function 2021-10-13 11:01:01 -07:00
lib Skip snapshot in zfs_iter_mounted() 2021-10-20 16:07:19 -07:00
man libshare: nfs: pass through ipv6 addresses in bracket notation 2021-10-20 10:40:00 -07:00
module Remove code duplication 2021-10-18 16:50:33 -07:00
rpm Added uncompress requirement 2021-06-11 09:38:23 -06:00
scripts Add zfs.sh -r flag to reload modules 2021-08-13 13:37:46 -07:00
tests pam_zfs_key: change test user name to conform to standards 2021-10-22 11:42:10 -07:00
udev Udev rules: remove zvol compat symlinks (without the leading zvol/) 2021-07-06 13:41:17 -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 .gitmodules: link to openzfs github repository 2021-04-12 09:37:23 -07: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 Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
configure.ac ZTS: Add tests for creation time 2021-08-17 10:25:58 -07:00
copy-builtin copy-builtin: posix conformance 2021-05-08 08:58:26 -07:00
COPYRIGHT Fix typos 2020-06-09 21:24:09 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
Makefile.am Check for libabigail version 2021-09-02 10:01:45 -07:00
META Linux 5.14 compat: META 2021-09-15 14:09:31 -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 Update FreeBSD versions 2021-03-16 15:03:28 -07:00
RELEASES.md Add RELEASES.md file 2021-04-02 16:33:40 -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 any supported branches and releases starting from 12.2-RELEASE.