snmp: free snmp_pdu struct allocated by snmp_pdu_create()
[collectd.git] / src / snmp.c
index d9ee741..dacdede 100644 (file)
@@ -123,7 +123,7 @@ static int csnmp_oid_suffix (oid_t *dst, oid_t const *src,
     oid_t const *root)
 {
   /* Make sure "src" is in "root"s subtree. */
-  if (src->oid_len >= root->oid_len)
+  if (src->oid_len <= root->oid_len)
     return (EINVAL);
   if (snmp_oid_ncompare (root->oid, root->oid_len,
         src->oid, src->oid_len,
@@ -1503,6 +1503,10 @@ static int csnmp_read_table (host_definition_t *host, data_definition_t *data)
     snmp_free_pdu (res);
   res = NULL;
 
+  if (req != NULL)
+    snmp_free_pdu (req);
+  req = NULL;
+
   if (status == 0)
     csnmp_dispatch_table (host, data, instance_list_head, value_list_head);