Package: backup2l
Version: 1.7-1
Severity: normal
Tags: patch

The man page for backup2l says grep is used to filter the list of files
for --get-available, --locate, and --restore.  It even suggests
prepending ' /.*' to the pattern to match only file names.  However, the
script sets shopt -s nullglob, which causes the for loop (on line 930 in
the current testing version) in get_location to not execute its body,
which means the $TMP.left file is not created.

Since this script is bash, rather than /bin/sh, the simple fix is to use
an array for MASK_LIST.  I have attached a patch.

...Marvin
--- trixie/backup2l     2025-07-19 12:47:02.818596906 -0400
+++ new/backup2l        2025-07-19 13:19:46.634044974 -0400
@@ -921,13 +921,13 @@
     fi
     shift
 
-    MASK_LIST="$@"
-    if [ "$MASK_LIST" = "" ]; then
-        MASK_LIST="/"
+    MASK_LIST=("$@")
+    if [ "${MASK_LIST[*]}" = "" ]; then
+        MASK_LIST=("/")
     fi
 
     # determine active files...
-    for MASK in $MASK_LIST; do
+    for MASK in "${MASK_LIST[@]}"; do
         gunzip -c $VOLNAME.$BID.list.gz | grep -a "$MASK" | tee $TMP.found | 
grep -a '/$' >> $TMP.dirs
             # dirs go to $TMP.dirs WITH attributes
         grep -av '/$' $TMP.found | eval "$FILTER_NAME" >> $TMP.left

Reply via email to