diff options
-rw-r--r-- | src/namestore/gnunet-service-namestore.c | 6 | ||||
-rw-r--r-- | src/namestore/namestore_api.c | 14 | ||||
-rw-r--r-- | src/namestore/test_namestore_api.conf | 2 |
3 files changed, 14 insertions, 8 deletions
diff --git a/src/namestore/gnunet-service-namestore.c b/src/namestore/gnunet-service-namestore.c index 8153cf20b..b72dcd073 100644 --- a/src/namestore/gnunet-service-namestore.c +++ b/src/namestore/gnunet-service-namestore.c | |||
@@ -311,7 +311,11 @@ handle_lookup_name_it (void *cls, | |||
311 | lnr_msg->rd_len = htons (rd_ser_len); | 311 | lnr_msg->rd_len = htons (rd_ser_len); |
312 | lnr_msg->name_len = htons (name_len); | 312 | lnr_msg->name_len = htons (name_len); |
313 | lnr_msg->expire = GNUNET_TIME_absolute_hton(expire); | 313 | lnr_msg->expire = GNUNET_TIME_absolute_hton(expire); |
314 | lnr_msg->public_key = (*zone_key); | 314 | if (zone_key != NULL) |
315 | lnr_msg->public_key = (*zone_key); | ||
316 | else | ||
317 | memset(&lnr_msg->public_key, '\0', sizeof (lnr_msg->public_key)); | ||
318 | |||
315 | lnr_msg->contains_sig = htons (contains_signature); | 319 | lnr_msg->contains_sig = htons (contains_signature); |
316 | if (GNUNET_YES == contains_signature) | 320 | if (GNUNET_YES == contains_signature) |
317 | lnr_msg->signature = *signature; | 321 | lnr_msg->signature = *signature; |
diff --git a/src/namestore/namestore_api.c b/src/namestore/namestore_api.c index 195c8a9bd..49ab4b442 100644 --- a/src/namestore/namestore_api.c +++ b/src/namestore/namestore_api.c | |||
@@ -259,6 +259,7 @@ handle_lookup_name_response (struct GNUNET_NAMESTORE_QueueEntry *qe, | |||
259 | 259 | ||
260 | struct GNUNET_CRYPTO_RsaSignature *signature = NULL; | 260 | struct GNUNET_CRYPTO_RsaSignature *signature = NULL; |
261 | struct GNUNET_TIME_Absolute expire; | 261 | struct GNUNET_TIME_Absolute expire; |
262 | struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded *public_key_tmp; | ||
262 | size_t exp_msg_len; | 263 | size_t exp_msg_len; |
263 | size_t msg_len = 0; | 264 | size_t msg_len = 0; |
264 | size_t name_len = 0; | 265 | size_t name_len = 0; |
@@ -284,11 +285,6 @@ handle_lookup_name_response (struct GNUNET_NAMESTORE_QueueEntry *qe, | |||
284 | GNUNET_break_op (0); | 285 | GNUNET_break_op (0); |
285 | return; | 286 | return; |
286 | } | 287 | } |
287 | if (name_len == 0) | ||
288 | { | ||
289 | GNUNET_break_op (0); | ||
290 | return; | ||
291 | } | ||
292 | 288 | ||
293 | name = (char *) &msg[1]; | 289 | name = (char *) &msg[1]; |
294 | rd_tmp = &name[name_len]; | 290 | rd_tmp = &name[name_len]; |
@@ -302,10 +298,16 @@ handle_lookup_name_response (struct GNUNET_NAMESTORE_QueueEntry *qe, | |||
302 | signature = NULL; | 298 | signature = NULL; |
303 | else | 299 | else |
304 | signature = &msg->signature; | 300 | signature = &msg->signature; |
301 | if (name_len == 0) | ||
302 | name = NULL; | ||
303 | if ((name != NULL) && (signature != NULL) && (rd_count > 0)) | ||
304 | public_key_tmp = &msg->public_key; | ||
305 | else | ||
306 | public_key_tmp = NULL; | ||
305 | 307 | ||
306 | if (qe->proc != NULL) | 308 | if (qe->proc != NULL) |
307 | { | 309 | { |
308 | qe->proc (qe->proc_cls, &msg->public_key, expire, name, rd_count, (rd_count > 0) ? rd : NULL, signature); | 310 | qe->proc (qe->proc_cls, public_key_tmp, expire, name, rd_count, (rd_count > 0) ? rd : NULL, signature); |
309 | } | 311 | } |
310 | 312 | ||
311 | /* Operation done, remove */ | 313 | /* Operation done, remove */ |
diff --git a/src/namestore/test_namestore_api.conf b/src/namestore/test_namestore_api.conf index f4cd32dbd..c437b414a 100644 --- a/src/namestore/test_namestore_api.conf +++ b/src/namestore/test_namestore_api.conf | |||
@@ -4,7 +4,7 @@ DEFAULTSERVICES = namestore | |||
4 | UNIXPATH = /tmp/gnunet-p1-service-arm.sock | 4 | UNIXPATH = /tmp/gnunet-p1-service-arm.sock |
5 | 5 | ||
6 | [namestore] | 6 | [namestore] |
7 | #PREFIX = valgrind --leak-check=full | 7 | PREFIX = valgrind --leak-check=full |
8 | AUTOSTART = YES | 8 | AUTOSTART = YES |
9 | UNIXPATH = /tmp/gnunet-service-namestore.sock | 9 | UNIXPATH = /tmp/gnunet-service-namestore.sock |
10 | UNIX_MATCH_UID = YES | 10 | UNIX_MATCH_UID = YES |