[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r21008 - in gnunet/src: block dht gns
From: |
gnunet |
Subject: |
[GNUnet-SVN] r21008 - in gnunet/src: block dht gns |
Date: |
Wed, 18 Apr 2012 15:40:40 +0200 |
Author: grothoff
Date: 2012-04-18 15:40:40 +0200 (Wed, 18 Apr 2012)
New Revision: 21008
Modified:
gnunet/src/block/plugin_block_test.c
gnunet/src/dht/gnunet-service-dht_routing.c
gnunet/src/dht/plugin_block_dht.c
gnunet/src/gns/plugin_block_gns.c
Log:
-fixing 2253
Modified: gnunet/src/block/plugin_block_test.c
===================================================================
--- gnunet/src/block/plugin_block_test.c 2012-04-18 11:49:58 UTC (rev
21007)
+++ gnunet/src/block/plugin_block_test.c 2012-04-18 13:40:40 UTC (rev
21008)
@@ -66,8 +66,11 @@
if (type != GNUNET_BLOCK_TYPE_TEST)
return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED;
if (xquery_size != 0)
+ {
+ GNUNET_break_op (0);
return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID;
- if (reply_block_size == 0)
+ }
+ if (NULL == reply_block)
return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
if (NULL != bf)
Modified: gnunet/src/dht/gnunet-service-dht_routing.c
===================================================================
--- gnunet/src/dht/gnunet-service-dht_routing.c 2012-04-18 11:49:58 UTC (rev
21007)
+++ gnunet/src/dht/gnunet-service-dht_routing.c 2012-04-18 13:40:40 UTC (rev
21008)
@@ -227,6 +227,8 @@
1, GNUNET_NO);
return GNUNET_SYSERR;
case GNUNET_BLOCK_EVALUATION_REQUEST_VALID:
+ GNUNET_break (0);
+ return GNUNET_OK;
case GNUNET_BLOCK_EVALUATION_REQUEST_INVALID:
GNUNET_break (0);
return GNUNET_OK;
@@ -280,6 +282,16 @@
pc.get_path = get_path;
pc.data = data;
pc.data_size = data_size;
+ if (NULL == data)
+ {
+ /* Some apps might have an 'empty' reply as a valid reply; however,
+ 'process' will call GNUNET_BLOCK_evaluate' which treats a 'NULL'
+ reply as request-validation (but we need response-validation).
+ So we set 'data' to a 0-byte non-NULL value just to be sure */
+ GNUNET_break (0 == data_size);
+ data_size = 0;
+ pc.data = ""; /* something not null */
+ }
GNUNET_CONTAINER_multihashmap_get_multiple (recent_map, key, &process, &pc);
}
Modified: gnunet/src/dht/plugin_block_dht.c
===================================================================
--- gnunet/src/dht/plugin_block_dht.c 2012-04-18 11:49:58 UTC (rev 21007)
+++ gnunet/src/dht/plugin_block_dht.c 2012-04-18 13:40:40 UTC (rev 21008)
@@ -65,17 +65,29 @@
if (type != GNUNET_BLOCK_TYPE_DHT_HELLO)
return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED;
if (xquery_size != 0)
+ {
+ GNUNET_break_op (0);
return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID;
- if (reply_block_size == 0)
+ }
+ if (NULL == reply_block)
return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
if (reply_block_size < sizeof (struct GNUNET_MessageHeader))
+ {
+ GNUNET_break_op (0);
return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
+ }
msg = reply_block;
if (reply_block_size != ntohs (msg->size))
+ {
+ GNUNET_break_op (0);
return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
+ }
hello = reply_block;
if (GNUNET_OK != GNUNET_HELLO_get_id (hello, &pid))
+ {
+ GNUNET_break_op (0);
return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
+ }
if (NULL != bf)
{
GNUNET_BLOCK_mingle_hash (&pid.hashPubKey, bf_mutator, &mhash);
Modified: gnunet/src/gns/plugin_block_gns.c
===================================================================
--- gnunet/src/gns/plugin_block_gns.c 2012-04-18 11:49:58 UTC (rev 21007)
+++ gnunet/src/gns/plugin_block_gns.c 2012-04-18 13:40:40 UTC (rev 21008)
@@ -88,9 +88,11 @@
* FIXME we could check for the record types here
**/
if (xquery_size < sizeof(uint32_t))
+ {
+ GNUNET_break_op (0);
return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID;
- else
- return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
+ }
+ return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
}
/* this is a reply */
@@ -119,7 +121,10 @@
/* Check query key against public key */
if (0 != GNUNET_CRYPTO_hash_cmp(query, &query_key))
+ {
+ GNUNET_break_op (0);
return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
+ }
record_match = 0;
rd_count = ntohl(nrb->rd_count);
@@ -139,6 +144,7 @@
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
"Data invalid (%d bytes, %d records)\n", rd_len, rd_count);
+ GNUNET_break_op (0);
return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
}
@@ -174,6 +180,7 @@
&nrb->signature))
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Signature invalid for name %s\n");
+ GNUNET_break_op (0);
return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r21008 - in gnunet/src: block dht gns,
gnunet <=