Project

General

Profile

Bug #8168

NULL pointer dereference in zfs_create()

Added by Ezomori Nozomu over 2 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Low
Category:
zfs - Zettabyte File System
Start date:
2017-05-06
Due date:
% Done:

100%

Estimated time:
0.00 h
Difficulty:
Bite-size
Tags:
needs-triage

Description

If we manage to export the pool on which we are creating a dataset (filesystem or zvol) between entering libzfs`zfs_create() and libzfs`zpool_open() call (for which we never check the return value) we end up dereferencing a NULL pointer in libzfs`zpool_close().

This was discovered on ZFS on Linux. The same issue can be reproduced on Illumos running in parallel:

while :; do zpool import -d /tmp testpool ; zpool export testpool ; done
while :; do zfs create testpool/fs; zfs destroy testpool/fs ; done

Eventually this will result in several core dumps like this one:

[root@52-54-00-d3-7a-01 /cores]# mdb core.zfs.4244
Loading modules: [ libumem.so.1 libc.so.1 libtopo.so.1 libavl.so.1 libnvpair.so.1 ld.so.1 ]
> ::stack
libzfs.so.1`zpool_close+0x17(0, 0, 0, 8047450)
libzfs.so.1`zfs_create+0x1bb(8090548, 8047e6f, 1, 808cba8)
zfs_do_create+0x545(2, 8047d74, 80778a0, 801, 0, 3)
main+0x22c(8047d2c, fef5c6e8, 8047d64, 8055a17, 3, 8047d70)
_start+0x83(3, 8047e64, 8047e68, 8047e6f, 0, 8047e7b)
>

Fix and reproducer (systemtap): https://github.com/zfsonlinux/zfs/pull/6096

History

#1

Updated by Prakash Surya over 2 years ago

  • Subject changed from Race between 'zpool export' and 'zfs create' leads to NULL pointer dereference in zfs_create() to NULL pointer dereference in zfs_create()
#2

Updated by Electric Monk over 2 years ago

  • Status changed from New to Closed

git commit 690031d326342fa4ea28b5e80f1ad6a16281519d

commit  690031d326342fa4ea28b5e80f1ad6a16281519d
Author: loli10K <ezomori.nozomu@gmail.com>
Date:   2017-06-08T01:55:42.000Z

    8168 NULL pointer dereference in zfs_create()
    Reviewed by: Matt Ahrens <mahrens@delphix.com>
    Approved by: Robert Mustacchi <rm@joyent.com>

Also available in: Atom PDF