Bug 20474 - Некорректная отработка firewall-advanced (alterator-firewall) - возможен вывод не полного списка сетевых интерфейсов
Summary: Некорректная отработка firewall-advanced (alterator-firewall) - возможен выво...
Status: NEW
Alias: None
Product: ALT Linux Server
Classification: Distributions
Component: bugs (show other bugs)
Version: 4.0.0
Hardware: x86 Linux
: P3 normal
Assignee: Anton V. Boyarshinov
QA Contact: Andrey Cherepanov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-17 09:57 MSD by Александр
Modified: 2009-06-17 09:57 MSD (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Александр 2009-06-17 09:57:41 MSD
Ошибка замечена в firewall-advanced (alterator-firewall-0.2-alt6-M40.1)

Строка match функции iptables_list_ifaces  в некоторых случаях некорректно получает список сетевых интерфейсов доступных в системе.

конкретнее - интерфейс может иметь индекс более 9, что не обрабатывается соответствующим шаблоном regexp - /^[[:digit:]]:+[[:space:]]
------------------------------------------------------------
вот вывод ip addr show у меня:
[root@ns-1 filter]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:09:6b:7f:df:35 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:19:cb:80:be:b6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.10/24 brd 192.168.0.255 scope global eth1
17: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1476 qdisc pfifo_fast qlen 3
    link/ppp
    inet 88.87.89.147 peer 88.87.65.91/32 scope global ppp0
---------------------------------------------------------------

В данной ситуации в интерфейсе alterator не присутствует интерфейс ppp0 и строка ppp+, т.к. "17:" проходит мимо "/^[[:digit:]]:"
---------------------------------------------------------------

function iptables_list_ifaces(		cmd, error, line, list, iface, idx, i, n) {
	i = 1
	cmd = IP " addr show"
	while ((error = cmd | getline line) > 0)
	{
		if (match(line, /^[[:digit:]]:+[[:space:]]+([^[:space:]]+):/, list) > 0)
		{

<...skipped...>
=================================================================