AlainKnaff's comment #3 is entirely correct.  This bug is also easy to
reproduce, as described in the initial comment, although as noted in
comment #3, it is not tabs per se that are the problem: anything other
than '#' or end-of-line is a problem.

I encountered this with ypbind taking the port 631 of cups, causing
printing in GNOME to be disabled.

Most casual users will not report this bug because it will "go away on
its own" if they reboot or something--but that is not the attitude to
encourage.

Just to be completely specific about how to reproduce this (this was
with 8.04, but I don't have any reason to believe it's been fixed):

0. Backup the file:
$ sudo mv /etc/bindresvport.blacklist /etc/bindresvport.blacklist.bak

1. Reserve all ports 600-999, with the format used for shipped 
bindresvport.blacklist (e.g., "631\t# cups")
$ perl -e 'for ($i=600; $i<1000; $i++) {print "$i\t# foo\n";}'  | sudo dd 
of=/etc/bindresvport.blacklist
7+1 records in
7+1 records out
4011 bytes (4.0 kB) copied, 6.5962e-05 s, 60.8 MB/s

2. Restart nis (or a different service as available).
$ sudo /etc/init.d/nis restart
 * Starting NIS service

3. Check what port it got:
$ sudo netstat --inet -nap | grep ypbind
tcp        0      0 0.0.0.0:724             0.0.0.0:*               LISTEN      
29803/ypbind    
udp        0      0 0.0.0.0:723             0.0.0.0:*                           
29803/ypbind    
udp        0      0 0.0.0.0:724             0.0.0.0:*                           
29803/ypbind    

4. Note that it falls in the range 600-999 (there is a small 24 out of
424 chance it will not -- try again).

This also fails with spaces, substituting the perl command in step 1:
$ perl -e 'for ($i=600; $i<1000; $i++) {print "$i # foo\n";}'  | sudo dd 
of=/etc/bindresvport.blacklist

It works with the '#' character directly following the port number:
$ perl -e 'for ($i=600; $i<1000; $i++) {print "$i# foo\n";}'  | sudo dd 
of=/etc/bindresvport.blacklist
or with the port number on the line by itself:
$ perl -e 'for ($i=600; $i<1000; $i++) {print "$i\n";}'  | sudo dd 
of=/etc/bindresvport.blacklist

In the last two cases I get:
tcp        0      0 0.0.0.0:1001            0.0.0.0:*               LISTEN      
29923/ypbind    
udp        0      0 0.0.0.0:1000            0.0.0.0:*                           
29923/ypbind    
udp        0      0 0.0.0.0:1001            0.0.0.0:*                           
29923/ypbind    

The comment #3 also describes the fix.

** Changed in: glibc (Ubuntu)
       Status: Incomplete => New

-- 
"Syntax error" in default bindresvport.blacklist
https://bugs.launchpad.net/bugs/306007
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to