On Mon, Oct 31, 2005 at 08:18:47PM +0100, Jonas Smedegaard wrote: > On Mon, 31 Oct 2005 17:37:03 +0100 > Eduard Bloch <blade@debian.org> wrote: > > > What does line 6 contain? > > > > none /dev/pts devpts > > > > It does not have all fields but all other parsers around did not have > > such problems, and mkinitrd.yaird should not either. > > I agree. Merging with the other bugreports already filed about this > issue. Jonas, Erik, this is actually one of the cases where you have to check for $#fields<3 the proposed patch will still fail on that fstab line. It's legal for mount to have such entries so I'd suggest decreasing that check. One more ancillary note: I'd chomp $line and/or remove the LIMIT parameter in the split call, otherwise a spare and empty array element is created... I find it misleading :) (well I also re-read the split perldoc page and the LIMIT parameter has definitely a crazy behaviour). So $#fields should be < 2 (if you consider fs_mntopts optional) Index: perl/FsTab.pm =================================================================== --- perl/FsTab.pm (revision 4704) +++ perl/FsTab.pm (working copy) @@ -41,11 +41,12 @@ my $lineNo = 0; while (defined (my $line = <IN>)) { $lineNo++; + chomp $line $line =~ s/^\s+//; next if $line =~ /^#/; # comment line next if $line eq ""; # empty line - my @fields = split (/\s+/, $line, 999); - if ($#fields < 6) { + my @fields = split (/\s+/, $line); + if ($#fields < 2) { # no test for extra fields; # the mount command allows that. Base::fatal ("malformed line in $name:$lineNo"); -- mattia :wq!
Attachment:
signature.asc
Description: Digital signature