[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r20361 - gnunet/src/gns
From: |
gnunet |
Subject: |
[GNUnet-SVN] r20361 - gnunet/src/gns |
Date: |
Thu, 8 Mar 2012 01:14:55 +0100 |
Author: schanzen
Date: 2012-03-08 01:14:55 +0100 (Thu, 08 Mar 2012)
New Revision: 20361
Modified:
gnunet/src/gns/gnunet-service-gns.c
Log:
-leaks, make valgrind happy
Modified: gnunet/src/gns/gnunet-service-gns.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns.c 2012-03-07 23:01:50 UTC (rev 20360)
+++ gnunet/src/gns/gnunet-service-gns.c 2012-03-08 00:14:55 UTC (rev 20361)
@@ -269,6 +269,7 @@
GNUNET_free_non_null (ac->name);
GNUNET_free(ac);
}
+ GNUNET_free(rh);
}
@@ -363,7 +364,8 @@
GNUNET_DNS_request_answer(ilh->request_handle,
len,
buf);
- //GNUNET_free(answer);
+
+ GNUNET_free(buf);
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Answered DNS request\n");
}
else
@@ -371,11 +373,15 @@
GNUNET_log(GNUNET_ERROR_TYPE_ERROR,
"Error building DNS response! (ret=%d)", ret);
}
-
+
+ packet->num_answers = 0;
+ packet->answers = NULL;
+ packet->num_additional_records = 0;
+ packet->additional_records = NULL;
+ GNUNET_DNSPARSER_free_packet(packet);
//FIXME free more!
+ GNUNET_free((struct RecordLookupHandle*)rh->proc_cls);
free_resolver_handle(rh);
- GNUNET_free((struct RecordLookupHandle*)rh->proc_cls);
- GNUNET_free(rh);
GNUNET_free(ilh);
}
@@ -1402,6 +1408,8 @@
rh->authority_name = GNUNET_malloc(sizeof(char)*MAX_DNS_LABEL_LENGTH);
rh->authority_chain_head = GNUNET_malloc(sizeof(struct AuthorityChain));
+ rh->authority_chain_head->prev = NULL;
+ rh->authority_chain_head->next = NULL;
rh->authority_chain_tail = rh->authority_chain_head;
rh->authority_chain_head->zone = zone_hash;
@@ -1428,6 +1436,7 @@
const char *request)
{
struct GNUNET_DNSPARSER_Packet *p;
+ int i;
char *tldoffset;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Hijacked a DNS
request...processing\n");
@@ -1438,6 +1447,7 @@
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"Received malformed DNS packet, leaving it untouched\n");
GNUNET_DNS_request_forward (rh);
+ GNUNET_DNSPARSER_free_packet (p);
return;
}
@@ -1471,13 +1481,16 @@
/**
* Check for .gnunet
*/
- tldoffset = p->queries[0].name + strlen(p->queries[0].name);
-
- while ((*tldoffset) != '.')
- tldoffset--;
+ tldoffset = p->queries[0].name + strlen(p->queries[0].name) - 1;
- if (0 == strcmp(tldoffset, gnunet_tld))
+ for (i=0; i<strlen(p->queries[0].name); i++)
{
+ if (*(tldoffset-i) == '.')
+ break;
+ }
+
+ if ((i==strlen(gnunet_tld)-1) && (0 == strcmp(tldoffset-i, gnunet_tld)))
+ {
start_resolution_from_dns(rh, p, p->queries);
}
else
@@ -1488,6 +1501,7 @@
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
"Request for %s is forwarded to DNS\n", p->queries[0].name);
GNUNET_DNS_request_forward (rh);
+ GNUNET_DNSPARSER_free_packet (p);
}
}
@@ -1624,6 +1638,8 @@
&update_zone_dht_next,
NULL);
+ GNUNET_free(nrb);
+
}
/**
@@ -1844,7 +1860,7 @@
strcpy(result+strlen(rh->name)+1, ".");
strcpy(result+strlen(rh->name)+2, auth_chain->name);
send_shorten_response(result, csh);
-
+ GNUNET_free(result);
return;
}
@@ -1861,6 +1877,8 @@
GNUNET_CONTAINER_DLL_remove(rh->authority_chain_head,
rh->authority_chain_tail,
auth_chain);
+ GNUNET_free(rh->name);
+ rh->name = new_name;
GNUNET_free(auth_chain->name);
GNUNET_free(auth_chain);
GNUNET_NAMESTORE_zone_to_name (namestore_handle,
@@ -1936,7 +1954,9 @@
strcpy(new_name, rh->name);
strcpy(new_name+strlen(rh->name)+1, ".");
strcpy(new_name+strlen(rh->name)+2, auth_chain->name);
-
+
+ GNUNET_free(rh->name);
+ rh->name = new_name;
GNUNET_CONTAINER_DLL_remove(rh->authority_chain_head,
rh->authority_chain_tail,
auth_chain);
@@ -2196,7 +2216,7 @@
GNUNET_CRYPTO_hash(&pkey, sizeof(struct
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded),
&zone_hash);
-
+ GNUNET_free(keyfile);
if (GNUNET_YES ==
GNUNET_CONFIGURATION_get_value_yesno (c, "gns",
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r20361 - gnunet/src/gns,
gnunet <=