[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 121234] crash after try to configure eth0 interface.
From:       WingHei Law <henry () thizlinux ! com>
Date:       2006-04-25 9:07:15
Message-ID: 20060425090715.17880.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=121234         




------- Additional Comments From henry thizlinux com  2006-04-25 11:07 -------
I had same problem with package compiled on debian base machine.
After trace in gdb, it seems that the problem was cause by interface which does not \
configured with an address. The XML return from the system-tools-backends script thus \
will not have a <address> node and call to addr.latin1() in kaddressvalidator.cpp \
return a NULL. Simply return NULL as bad address seems fix the problem.

Regards
Henry

diff -u kdeadmin-3.5.2.orig/knetworkconf/knetworkconf/kaddressvalidator.cpp \
                kdeadmin-3.5.2/knetworkconf/knetworkconf/kaddressvalidator.cpp
--- kdeadmin-3.5.2.orig/knetworkconf/knetworkconf/kaddressvalidator.cpp 2005-09-10 \
                16:14:31.000000000 +0800
+++ kdeadmin-3.5.2/knetworkconf/knetworkconf/kaddressvalidator.cpp      2006-04-24 \
14:40:27.000000000 +0800  @ -188,11 +188,11  @
   struct in_addr _addr, _netmask, _network;
   int prefix = 0;
   QString s;
-  if (!inet_pton(AF_INET,addr.latin1(),&_addr))
+  if (!addr.latin1() || !inet_pton(AF_INET,addr.latin1(),&_addr))
     return NULL; //bad address
   else
   {
-    if (!inet_pton(AF_INET,netmask.latin1(),&_netmask))
+    if (!netmask.latin1() || !inet_pton(AF_INET,netmask.latin1(),&_netmask))
       return NULL; //bad address
     else
     {
 @ -214,11 +214,11  @
   struct in_addr _addr, _netmask, _network;
   int prefix = 0;
   QString s;
-  if (!inet_pton(AF_INET,addr.latin1(),&_addr))
+  if (!addr.latin1() || !inet_pton(AF_INET,addr.latin1(),&_addr))
     return NULL; //bad address
   else
   {
-    if (!inet_pton(AF_INET,netmask.latin1(),&_netmask))
+    if (!netmask.latin1() || !inet_pton(AF_INET,netmask.latin1(),&_netmask))
       return NULL; //bad address
     else
     {


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic