]> sourceware.org Git - lvm2.git/commit
signals: fix SIGINT blocking flaw causing inconsistent metadata
authorHeinz Mauelshagen <heinzm@redhat.com>
Mon, 10 Apr 2017 16:16:09 +0000 (18:16 +0200)
committerHeinz Mauelshagen <heinzm@redhat.com>
Mon, 10 Apr 2017 16:16:09 +0000 (18:16 +0200)
commit9a689fb8f0a6b1675a4e819f4837bf2e0269832f
tree7d1c8fea66b55062bea339ddbb461cad651f70e0
parentef3e1013aa8d7797fa432e2da219255178b8ede3
signals: fix SIGINT blocking flaw causing inconsistent metadata

SIGINT isn't blocked properly after a sigint_allow(),
sigint_restore() cycle leading to illicit interruptable
metadata updates.  These can leave corrupted metadata behind.

Issues addressed in this commit:

sigint_allow() fails to set _oldmasked[] members properly due
to an offset by one bug on indexing the members of the array.

It bails out prematurely comparing to MAX_SIGINTS causing nesting
depths to be one less than MAX_SIGINTS.  Fix the comparision.

Correct the related comparison flaw in sigint_restore().

Initialize all sig_atomic_t variables consequently.

Resolves: rhbz1440766
lib/misc/lvm-signal.c
This page took 0.038139 seconds and 5 git commands to generate.