summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormrm <mrm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-08-23 04:42:57 +0000
committermrm <mrm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-08-23 04:42:57 +0000
commitd8143c898fa39923d78e1382f38196856ab48b59 (patch)
tree7cd0b47c42bcb94bf4ab7b9fff1ef331bef1ac31
parentbde1bd27fdb3e91ca75e218849536ef87063608e (diff)
downloadATCD-d8143c898fa39923d78e1382f38196856ab48b59.tar.gz
clean up Purify reported leaks and urms
-rw-r--r--ASNMP/asnmp/address.cpp4
-rw-r--r--ASNMP/asnmp/octet.cpp4
-rw-r--r--ASNMP/asnmp/oid.cpp5
3 files changed, 12 insertions, 1 deletions
diff --git a/ASNMP/asnmp/address.cpp b/ASNMP/asnmp/address.cpp
index 0722138f2fc..acfc168b88a 100644
--- a/ASNMP/asnmp/address.cpp
+++ b/ASNMP/asnmp/address.cpp
@@ -579,6 +579,8 @@ int IpAddress::resolve_to_hostname(const in_addr& quad_addr, char *hostname)
struct hostent lookupResult;
int loc_errno = 0;
ACE_HOSTENT_DATA buffer;
+ ACE_OS::memset(&lookupResult, 0, sizeof(struct hostent));
+ ACE_OS::memset(&buffer, 0, sizeof(ACE_HOSTENT_DATA));
if (ACE_OS::gethostbyaddr_r((const char *)&quad_addr.s_addr, IPV4LEN,
AF_INET, &lookupResult, buffer, &loc_errno)) {
@@ -594,6 +596,8 @@ int IpAddress::resolve_to_address(const char *hostname, in_addr& quad_addr)
{
struct hostent lookupResult;
ACE_HOSTENT_DATA buffer;
+ ACE_OS::memset(&buffer, 0, sizeof(ACE_HOSTENT_DATA));
+ ACE_OS::memset(&lookupResult, 0, sizeof(struct hostent));
int loc_errno = 0;
if (ACE_OS::gethostbyname_r ( hostname, &lookupResult, buffer, &loc_errno)) {
if (lookupResult.h_length == sizeof(in_addr)) {
diff --git a/ASNMP/asnmp/octet.cpp b/ASNMP/asnmp/octet.cpp
index b850b581228..a1daca358ee 100644
--- a/ASNMP/asnmp/octet.cpp
+++ b/ASNMP/asnmp/octet.cpp
@@ -61,6 +61,10 @@ inline
int copy_octet_smi(SmiVALUE& smi, int size, const char *src, int& valid_flag)
{
valid_flag = FALSE;
+
+ if (smi.value.string.ptr)
+ delete [] smi.value.string.ptr;
+
ACE_NEW_RETURN(smi.value.string.ptr, SmiBYTE[size], 1);
ACE_OS::memcpy( smi.value.string.ptr, src, (size_t) size);
smi.value.string.len = size;
diff --git a/ASNMP/asnmp/oid.cpp b/ASNMP/asnmp/oid.cpp
index 403ad492af7..a350af60de3 100644
--- a/ASNMP/asnmp/oid.cpp
+++ b/ASNMP/asnmp/oid.cpp
@@ -194,10 +194,13 @@ void Oid::init_value(const SmiLPOID srcOid, size_t len)
void Oid::init_value(const unsigned long *raw_oid, size_t oid_len)
{
+ if (smival.value.oid.ptr)
+ delete [] smival.value.oid.ptr;
+
ACE_NEW(smival.value.oid.ptr, SmiUINT32[ oid_len]);
ACE_OS::memcpy((SmiLPBYTE) smival.value.oid.ptr,
(SmiLPBYTE) raw_oid,
- (size_t) (oid_len*sizeof(SmiUINT32)));
+ (size_t) (oid_len * sizeof(SmiUINT32)));
smival.value.oid.len = oid_len;
}