elif [ -n "$DEVLINKS" ]; then
                        for link in $DEVLINKS; do
                                if [ "x$link" != "x$src" ]; then
                                        continue
                                fi
                                break 2
                        done

I'm still having trouble with this as I'm reading it :)  Maybe my brain
is just not in shell mode today, but I believe what we need to have
happen here is:

 - if $src matches one of the links in $DEVLINKS, we have a match and should 
mount this device.
 - if $src matches none of the links in $DEVLINKS, and also doesn't match $1, 
skip this line and look for another match in crypttab.

The current patch appears to have the following wrong properties:
 - if $DEVLINKS is set but the crypttab line matches the device name instead of 
one of the links, it will not be processed correctly (because we never get a 
chance to compare $1 and $src)
 - if $src matches none of the links in $DEVLINKS, we'll hit the 'continue' 
each time through the for loop, so the break will never be hit and we'll 
(incorrectly) try to process the line
 - if $src *does* match one of the links in $DEVLINKS, we will hit the 'break 
2' and *not* process *any* more lines in crypttab.

So I think your patch usually works, but only as a side effect.  I'll
take a crack at the patch here.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/874774

Title:
  could not mount /dev/mapper/cryptswap1

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cryptsetup/+bug/874774/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to