aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/namestore/gnunet-service-namestore.c6
-rw-r--r--src/namestore/namestore_api.c14
-rw-r--r--src/namestore/test_namestore_api.conf2
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
4UNIXPATH = /tmp/gnunet-p1-service-arm.sock 4UNIXPATH = /tmp/gnunet-p1-service-arm.sock
5 5
6[namestore] 6[namestore]
7#PREFIX = valgrind --leak-check=full 7PREFIX = valgrind --leak-check=full
8AUTOSTART = YES 8AUTOSTART = YES
9UNIXPATH = /tmp/gnunet-service-namestore.sock 9UNIXPATH = /tmp/gnunet-service-namestore.sock
10UNIX_MATCH_UID = YES 10UNIX_MATCH_UID = YES