summaryrefslogtreecommitdiff
path: root/libopie2
authorzecke <zecke>2004-03-13 21:59:48 (UTC)
committer zecke <zecke>2004-03-13 21:59:48 (UTC)
commitee753c0009da5bec4a71d3263e9623d04dddc5c4 (patch) (unidiff)
treef578536203c4277cc124d622b50f46a025cbb3f9 /libopie2
parent2eb5c075b612498c4b65f3d49389b8612612a930 (diff)
downloadopie-ee753c0009da5bec4a71d3263e9623d04dddc5c4.zip
opie-ee753c0009da5bec4a71d3263e9623d04dddc5c4.tar.gz
opie-ee753c0009da5bec4a71d3263e9623d04dddc5c4.tar.bz2
Fix possible divide by null
Patch for mickeyl...
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opienet/onetwork.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/libopie2/opienet/onetwork.cpp b/libopie2/opienet/onetwork.cpp
index ab3e77f..26a6c81 100644
--- a/libopie2/opienet/onetwork.cpp
+++ b/libopie2/opienet/onetwork.cpp
@@ -48,37 +48,37 @@
48#include <stdlib.h> 48#include <stdlib.h>
49#include <math.h> 49#include <math.h>
50#include <sys/ioctl.h> 50#include <sys/ioctl.h>
51#include <sys/socket.h> 51#include <sys/socket.h>
52#include <sys/types.h> 52#include <sys/types.h>
53#include <unistd.h> 53#include <unistd.h>
54#include <linux/sockios.h> 54#include <linux/sockios.h>
55#include <net/if_arp.h> 55#include <net/if_arp.h>
56#include <stdarg.h> 56#include <stdarg.h>
57 57
58#ifndef NODEBUG 58#ifndef NODEBUG
59#include <opie2/odebugmapper.h> 59#include <opie2/odebugmapper.h>
60 60
61 61
62using namespace Opie::Core; 62using namespace Opie::Core;
63using namespace Opie::Net::Private; 63using namespace Opie::Net::Private;
64DebugMapper* debugmapper = new DebugMapper(); 64DebugMapper* debugmapper = new DebugMapper();
65#endif 65#endif
66 66
67/*====================================================================================== 67/*======================================================================================
68 * ONetwork 68 * ONetwork
69 *======================================================================================*/ 69 *======================================================================================*/
70 70
71namespace Opie { 71namespace Opie {
72namespace Net { 72namespace Net {
73ONetwork* ONetwork::_instance = 0; 73ONetwork* ONetwork::_instance = 0;
74 74
75ONetwork::ONetwork() 75ONetwork::ONetwork()
76{ 76{
77 odebug << "ONetwork::ONetwork()" << oendl; 77 odebug << "ONetwork::ONetwork()" << oendl;
78 odebug << "ONetwork: This code has been compiled against Wireless Extensions V" << WIRELESS_EXT << oendl; 78 odebug << "ONetwork: This code has been compiled against Wireless Extensions V" << WIRELESS_EXT << oendl;
79 synchronize(); 79 synchronize();
80} 80}
81 81
82void ONetwork::synchronize() 82void ONetwork::synchronize()
83{ 83{
84 // gather available interfaces by inspecting /proc/net/dev 84 // gather available interfaces by inspecting /proc/net/dev
@@ -997,25 +997,26 @@ int OWirelessNetworkInterface::signalStrength() const
997 _iwr.u.data.length = sizeof stat; 997 _iwr.u.data.length = sizeof stat;
998 998
999 if ( !wioctl( SIOCGIWSTATS ) ) 999 if ( !wioctl( SIOCGIWSTATS ) )
1000 { 1000 {
1001 return -1; 1001 return -1;
1002 } 1002 }
1003 1003
1004 int max = _range.max_qual.qual; 1004 int max = _range.max_qual.qual;
1005 int cur = stat.qual.qual; 1005 int cur = stat.qual.qual;
1006 int lev = stat.qual.level; //FIXME: Do something with them? 1006 int lev = stat.qual.level; //FIXME: Do something with them?
1007 int noi = stat.qual.noise; //FIXME: Do something with them? 1007 int noi = stat.qual.noise; //FIXME: Do something with them?
1008 1008
1009 return cur*100/max; 1009
1010 return max != 0 ? cur*100/max: -1;
1010} 1011}
1011 1012
1012 1013
1013bool OWirelessNetworkInterface::wioctl( int call, struct iwreq& iwreq ) const 1014bool OWirelessNetworkInterface::wioctl( int call, struct iwreq& iwreq ) const
1014{ 1015{
1015 #ifndef NODEBUG 1016 #ifndef NODEBUG
1016 int result = ::ioctl( _sfd, call, &iwreq ); 1017 int result = ::ioctl( _sfd, call, &iwreq );
1017 1018
1018 if ( result == -1 ) 1019 if ( result == -1 )
1019 odebug << "ONetworkInterface::wioctl (" << name() << ") call '" 1020 odebug << "ONetworkInterface::wioctl (" << name() << ") call '"
1020 << debugmapper->map( call ) << "' FAILED! " << result << " (" << strerror( errno ) << ")" << oendl; 1021 << debugmapper->map( call ) << "' FAILED! " << result << " (" << strerror( errno ) << ")" << oendl;
1021 else 1022 else
@@ -1234,15 +1235,15 @@ void OOrinocoMonitoringInterface::setEnabled( bool b )
1234 } 1235 }
1235 else 1236 else
1236 { 1237 {
1237 _if->setPrivate( "monitor", 2, 0, 0 ); 1238 _if->setPrivate( "monitor", 2, 0, 0 );
1238 } 1239 }
1239} 1240}
1240 1241
1241 1242
1242QString OOrinocoMonitoringInterface::name() const 1243QString OOrinocoMonitoringInterface::name() const
1243{ 1244{
1244 return "orinoco"; 1245 return "orinoco";
1245} 1246}
1246 1247
1247} 1248}
1248} 1249}