diff options
author | mrm <mrm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-08-23 04:42:57 +0000 |
---|---|---|
committer | mrm <mrm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-08-23 04:42:57 +0000 |
commit | 3880ab9d178d0eb8db7b1b95130194e02a4f8081 (patch) | |
tree | 7cd0b47c42bcb94bf4ab7b9fff1ef331bef1ac31 /ASNMP/asnmp | |
parent | 987bacdd40c89570bd830871cb6174d593f39758 (diff) | |
download | ATCD-3880ab9d178d0eb8db7b1b95130194e02a4f8081.tar.gz |
clean up Purify reported leaks and urms
Diffstat (limited to 'ASNMP/asnmp')
-rw-r--r-- | ASNMP/asnmp/address.cpp | 4 | ||||
-rw-r--r-- | ASNMP/asnmp/octet.cpp | 4 | ||||
-rw-r--r-- | ASNMP/asnmp/oid.cpp | 5 |
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; } |