Bug#295482: netcfg broadcast address crashes LAN
Package: netcfg
Version: 1.07.1
Subject: erroneous static network interface broadcast address
The Debian Installer repeatedly crashes my DSL modem. There have never
been any other problems except with D-I. I think the broadcast address
is the problem. The problem occurs especially when the installer tries
to fetch files from the internet before rebooting. The network is good
after rebooting. I think the netcfg is the problem or else busybox. This
is what I found when checking before rebooting:
========= preboot installation /etc/network/interfaces ==============
============ this was correctly written by the installer ============
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.2.64
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.2.1
dns-search localnet
======== preboot installation ifconfig ===============
======== this was not correctly initialized ==========
eth0 Link encap:Ethernet HWaddr 00:11:2F:E0:3A:27
inet addr:192.168.2.64 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:50 errors:0 dropped:0 overruns:0 frame:0
TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:49876 (48.7 KiB) TX bytes:3281 (3.2 KiB)
Interrupt:17 Memory:fba00000-0
============ the above Bcast:0.0.0.0 is incorrect =========
I found this code in the netcfg/static.c file. The fprintf must be good.
I think the broadcast.s_addr is wrong when initializing interface:
static.c: struct in_addr broadcast = { 0 };
static.c: broadcast.s_addr = (network.s_addr | ~netmask.s_addr);
static.c: fprintf(fp, "\tbroadcast %s\n", inet_ntop (AF_INET, &broadcast, ptr1, sizeof (ptr1)));
............
Thanks for the attention
Reply to: