From bf8513ae631484a0c292ad085ea7ede9859f8e0f Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 3 Jun 2013 22:34:58 -0600 Subject: lock_open_* fix possible bug caused symlinked directories If somewhere in the path to ${path}.lock there was a symlink, then it would fail to inherit the lock from the parent program, and stall. --- lib/common.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/common.sh b/lib/common.sh index 4cf9944..65d6d15 100644 --- a/lib/common.sh +++ b/lib/common.sh @@ -115,7 +115,7 @@ lock_open_write() { local msg=$3 # Only reopen the FD if it wasn't handed to us - if [[ $(readlink -f /dev/fd/$fd) != "${path}.lock" ]]; then + if [[ "$(readlink -f /dev/fd/$fd)" != "$(readlink -f "${path}.lock")" ]]; then mkdir -p "${path%/*}" eval "exec $fd>${path}.lock" fi @@ -136,7 +136,7 @@ lock_open_read() { local msg=$3 # Only reopen the FD if it wasn't handed to us - if [[ $(readlink -f /dev/fd/$fd) != "${path}.lock" ]]; then + if [[ "$(readlink -f /dev/fd/$fd)" != "$(readlink -f "${path}.lock")" ]]; then mkdir -p "${path%/*}" eval "exec $fd>${path}.lock" fi -- cgit v1.2.3-70-g09d2