From 02acb32d174db0b350a01fe8b42a7c661c72b532 Mon Sep 17 00:00:00 2001 From: Axel Burri Date: Wed, 11 Mar 2015 19:18:54 +0100 Subject: [PATCH] btrbk: fixed bug: "Use of uninitialized value $&". The bug occurred when parsing a sub-subvolume from "btrfs subvolume list" command output --- btrbk | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/btrbk b/btrbk index 56e8435..b0662ac 100755 --- a/btrbk +++ b/btrbk @@ -664,13 +664,16 @@ sub btr_subtree($;$) my $path = $node->{path}; if($volname) { # strip leading volume name - unless($path =~ s/^$volname\///) { - # if $vol is a sub-subvolume, strip whole prefix - unless($path =~ s/.+\/$volname\///) { - die("ambiguous btrfs subvolume info line"); - } + if($path =~ s/^$volname\///) { + TRACE "btr_subtree: removed \"$&\" prefix of subvolume path: $path"; + } + elsif($path =~ s/^.+\/$volname\///) { + # $vol is a sub-subvolume, whole prefix stripped + TRACE "btr_subtree: removed \"$&\" prefix of sub-subvolume path: $path"; + } + else { + die("ambiguous btrfs subvolume info line"); } - TRACE "btr_subtree: removed \"$&\" prefix of subvolume path: $path"; } $node->{SUBVOL_PATH} = $path; TRACE "btr_subtree: set SUBVOL_PATH: $node->{SUBVOL_PATH}";