[Bug 1041377] Re: mountall ignores NFS mount option "timeo"
Adam Conrad
adconrad at 0c3.net
Fri Dec 21 19:19:51 UTC 2012
Hello Rolf, or anyone else affected,
Accepted mountall into precise-proposed. The package will build now and
be available at http://launchpad.net/ubuntu/+source/mountall/2.36.3 in a
few hours, and then in the -proposed repository.
Please help us by testing this new package. See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to
enable and use -proposed. Your feedback will aid us getting this update
out to other Ubuntu users.
If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, and change the tag
from verification-needed to verification-done. If it does not fix the
bug for you, please add a comment stating that, and change the tag to
verification-failed. In either case, details of your testing will help
us make a better decision.
Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in
advance!
** Changed in: mountall (Ubuntu Precise)
Status: Confirmed => Fix Committed
** Tags added: verification-needed
** Changed in: mountall (Ubuntu Quantal)
Status: Confirmed => Fix Committed
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to mountall in Ubuntu.
https://bugs.launchpad.net/bugs/1041377
Title:
mountall ignores NFS mount option "timeo"
Status in “mountall” package in Ubuntu:
Triaged
Status in “mountall” source package in Precise:
Fix Committed
Status in “mountall” source package in Quantal:
Fix Committed
Status in “mountall” source package in Raring:
Triaged
Bug description:
If the mount option "timeo" is specified for an NFS mount in /etc/fstab,
mountall does not pass it to mount.nfs. The bug is in the function
cut_options() in mountall.c. It is called with the following arguments:
opts = cut_options (NULL, mnt, "showthrough", "optional",
"bootwait", "nobootwait", "timeout",
NULL);
Although it should only remove the specified options, it also removes
any option that is a prefix of one of those, e.g. "timeo".
The call to strncmp() in line 661 compares only up to the length of the
option from the fstab, without comparing the length of both strings.
Hence I propose the following patch:
*(updated patch in comment #6).
--- mountall-2.36/src/mountall.c.orig 2012-08-24 20:25:07.445892095 +0200
+++ mountall-2.36/src/mountall.c 2012-08-24 21:29:10.098595843 +0200
@@ -658,7 +658,8 @@
va_copy (options, args);
while ((option = va_arg (options, const char *)) != NULL)
{
- if (j && ! strncmp (opts + i, option, j))
+ if (j && option[j] == '\0'
+ && ! strncmp (opts + i, option, j))
break;
}
va_end (options);
[Impact]
Mounts that have options that are substrings of (showthrough, optional, bootwait, nobootwait or timeout) Are being stripped by mountall and not being passed to the mount. Such is the case of timeo in nfs.
The change is minimal, and simply checks that the option being
stripped matches the length of option being checked against. This
solves the case where one is a substring of the other.
[Test Case]
1. Create an nfs mount option in /etc/fstab with the timeo=2 option. Like the below.
server:/raid /raid nfs user,timeo=2,timeout=6 0 0
2. Run mountall as root
3. run mount and verify that the nfs mount specified above has the options user,timeo=2 , but not timeout=6.
[Regression Potential]
Regression potential is minimal, but regressions are most likely to manifest themselves in mount options disappearing or new options appearing (some new options appearing will be valid as is the case of timeo).
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/1041377/+subscriptions
More information about the foundations-bugs
mailing list