aboutsummaryrefslogtreecommitdiff
path: root/src/namestore
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-07-08 17:20:23 +0000
committerChristian Grothoff <christian@grothoff.org>2016-07-08 17:20:23 +0000
commitd8c53b12a818ff7cf82d06a1a69c395bdef85ee6 (patch)
tree0ebb0db416c157fcfde51a941185819dd12d51fd /src/namestore
parent5184c17d32a39c928c2a0fec3ee1ad098bbaa562 (diff)
downloadgnunet-d8c53b12a818ff7cf82d06a1a69c395bdef85ee6.tar.gz
gnunet-d8c53b12a818ff7cf82d06a1a69c395bdef85ee6.zip
-avoid calling memcpy() with NULL argument, even if len is 0
Diffstat (limited to 'src/namestore')
-rw-r--r--src/namestore/gnunet-namestore-fcfsd.c6
-rw-r--r--src/namestore/gnunet-namestore.c2
-rw-r--r--src/namestore/gnunet-service-namestore.c22
-rw-r--r--src/namestore/namestore_api.c4
-rw-r--r--src/namestore/plugin_namestore_flat.c16
-rw-r--r--src/namestore/plugin_namestore_postgres.c4
-rw-r--r--src/namestore/plugin_namestore_sqlite.c2
-rw-r--r--src/namestore/plugin_rest_namestore.c2
-rw-r--r--src/namestore/test_namestore_api_zone_to_name.c2
9 files changed, 32 insertions, 28 deletions
diff --git a/src/namestore/gnunet-namestore-fcfsd.c b/src/namestore/gnunet-namestore-fcfsd.c
index c2f506f6d..ed7009e02 100644
--- a/src/namestore/gnunet-namestore-fcfsd.c
+++ b/src/namestore/gnunet-namestore-fcfsd.c
@@ -321,7 +321,7 @@ iterate_cb (void *cls,
321 if (bytes_free < (strlen (name) + strlen (pkey) + 40)) 321 if (bytes_free < (strlen (name) + strlen (pkey) + 40))
322 { 322 {
323 new_buf = GNUNET_malloc (zr->buf_len * 2); 323 new_buf = GNUNET_malloc (zr->buf_len * 2);
324 memcpy (new_buf, zr->zoneinfo, zr->write_offset); 324 GNUNET_memcpy (new_buf, zr->zoneinfo, zr->write_offset);
325 GNUNET_free (zr->zoneinfo); 325 GNUNET_free (zr->zoneinfo);
326 zr->zoneinfo = new_buf; 326 zr->zoneinfo = new_buf;
327 zr->buf_len *= 2; 327 zr->buf_len *= 2;
@@ -456,7 +456,7 @@ post_iterator (void *cls,
456 { 456 {
457 if (size + off >= sizeof(request->domain_name)) 457 if (size + off >= sizeof(request->domain_name))
458 size = sizeof (request->domain_name) - off - 1; 458 size = sizeof (request->domain_name) - off - 1;
459 memcpy (&request->domain_name[off], 459 GNUNET_memcpy (&request->domain_name[off],
460 data, 460 data,
461 size); 461 size);
462 request->domain_name[size+off] = '\0'; 462 request->domain_name[size+off] = '\0';
@@ -466,7 +466,7 @@ post_iterator (void *cls,
466 { 466 {
467 if (size + off >= sizeof(request->public_key)) 467 if (size + off >= sizeof(request->public_key))
468 size = sizeof (request->public_key) - off - 1; 468 size = sizeof (request->public_key) - off - 1;
469 memcpy (&request->public_key[off], 469 GNUNET_memcpy (&request->public_key[off],
470 data, 470 data,
471 size); 471 size);
472 request->public_key[size+off] = '\0'; 472 request->public_key[size+off] = '\0';
diff --git a/src/namestore/gnunet-namestore.c b/src/namestore/gnunet-namestore.c
index 90214e9d6..43cabed2a 100644
--- a/src/namestore/gnunet-namestore.c
+++ b/src/namestore/gnunet-namestore.c
@@ -536,7 +536,7 @@ get_existing_record (void *cls,
536 break; 536 break;
537 } 537 }
538 memset (rdn, 0, sizeof (struct GNUNET_GNSRECORD_Data)); 538 memset (rdn, 0, sizeof (struct GNUNET_GNSRECORD_Data));
539 memcpy (&rdn[1], rd, rd_count * sizeof (struct GNUNET_GNSRECORD_Data)); 539 GNUNET_memcpy (&rdn[1], rd, rd_count * sizeof (struct GNUNET_GNSRECORD_Data));
540 rde = &rdn[0]; 540 rde = &rdn[0];
541 rde->data = data; 541 rde->data = data;
542 rde->data_size = data_size; 542 rde->data_size = data_size;
diff --git a/src/namestore/gnunet-service-namestore.c b/src/namestore/gnunet-service-namestore.c
index aeec2d10b..3df8a4ddd 100644
--- a/src/namestore/gnunet-service-namestore.c
+++ b/src/namestore/gnunet-service-namestore.c
@@ -428,7 +428,9 @@ lookup_nick_it (void *cls,
428 { 428 {
429 (*res) = GNUNET_malloc (rd[c].data_size + sizeof (struct GNUNET_GNSRECORD_Data)); 429 (*res) = GNUNET_malloc (rd[c].data_size + sizeof (struct GNUNET_GNSRECORD_Data));
430 (*res)->data = &(*res)[1]; 430 (*res)->data = &(*res)[1];
431 memcpy ((char *)(*res)->data, rd[c].data, rd[c].data_size); 431 GNUNET_memcpy ((void *) (*res)->data,
432 rd[c].data,
433 rd[c].data_size);
432 (*res)->data_size = rd[c].data_size; 434 (*res)->data_size = rd[c].data_size;
433 (*res)->expiration_time = rd[c].expiration_time; 435 (*res)->expiration_time = rd[c].expiration_time;
434 (*res)->flags = rd[c].flags; 436 (*res)->flags = rd[c].flags;
@@ -513,7 +515,9 @@ merge_with_nick_records ( const struct GNUNET_GNSRECORD_Data *nick_rd,
513 (*rd_res)[c] = rd2[c]; 515 (*rd_res)[c] = rd2[c];
514 (*rd_res)[c].data = (void *) &data[data_offset]; 516 (*rd_res)[c].data = (void *) &data[data_offset];
515 // WTF? 517 // WTF?
516 memcpy ((void *) (*rd_res)[c].data, rd2[c].data, rd2[c].data_size); 518 GNUNET_memcpy ((void *) (*rd_res)[c].data,
519 rd2[c].data,
520 rd2[c].data_size);
517 data_offset += (*rd_res)[c].data_size; 521 data_offset += (*rd_res)[c].data_size;
518 } 522 }
519 record_offset = rdc2; 523 record_offset = rdc2;
@@ -523,9 +527,9 @@ merge_with_nick_records ( const struct GNUNET_GNSRECORD_Data *nick_rd,
523 (*rd_res)[c+record_offset].expiration_time = latest_expiration; 527 (*rd_res)[c+record_offset].expiration_time = latest_expiration;
524 (*rd_res)[c+record_offset].data = (void *) &data[data_offset]; 528 (*rd_res)[c+record_offset].data = (void *) &data[data_offset];
525 // WTF? 529 // WTF?
526 memcpy ((void *) (*rd_res)[c+record_offset].data, 530 GNUNET_memcpy ((void *) (*rd_res)[c+record_offset].data,
527 nick_rd[c].data, 531 nick_rd[c].data,
528 nick_rd[c].data_size); 532 nick_rd[c].data_size);
529 data_offset += (*rd_res)[c+record_offset].data_size; 533 data_offset += (*rd_res)[c+record_offset].data_size;
530 } 534 }
531 GNUNET_assert (req == (sizeof (struct GNUNET_GNSRECORD_Data)) * (*rdc_res) + data_offset); 535 GNUNET_assert (req == (sizeof (struct GNUNET_GNSRECORD_Data)) * (*rdc_res) + data_offset);
@@ -591,7 +595,7 @@ send_lookup_response (struct GNUNET_SERVER_NotificationContext *nc,
591 zir_msg->rd_len = htons (rd_ser_len); 595 zir_msg->rd_len = htons (rd_ser_len);
592 zir_msg->private_key = *zone_key; 596 zir_msg->private_key = *zone_key;
593 name_tmp = (char *) &zir_msg[1]; 597 name_tmp = (char *) &zir_msg[1];
594 memcpy (name_tmp, name, name_len); 598 GNUNET_memcpy (name_tmp, name, name_len);
595 rd_ser = &name_tmp[name_len]; 599 rd_ser = &name_tmp[name_len];
596 GNUNET_GNSRECORD_records_serialize (res_count, res, rd_ser_len, rd_ser); 600 GNUNET_GNSRECORD_records_serialize (res_count, res, rd_ser_len, rd_ser);
597 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 601 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -893,8 +897,8 @@ handle_record_lookup (void *cls,
893 llr_msg->found = ntohs (GNUNET_YES); 897 llr_msg->found = ntohs (GNUNET_YES);
894 else 898 else
895 llr_msg->found = ntohs (GNUNET_NO); 899 llr_msg->found = ntohs (GNUNET_NO);
896 memcpy (&llr_msg[1], name_tmp, name_len); 900 GNUNET_memcpy (&llr_msg[1], name_tmp, name_len);
897 memcpy (&res_name[name_len], rlc.res_rd, rlc.rd_ser_len); 901 GNUNET_memcpy (&res_name[name_len], rlc.res_rd, rlc.rd_ser_len);
898 902
899 GNUNET_SERVER_notification_context_unicast (snc, client, &llr_msg->gns_header.header, 903 GNUNET_SERVER_notification_context_unicast (snc, client, &llr_msg->gns_header.header,
900 GNUNET_NO); 904 GNUNET_NO);
@@ -1153,7 +1157,7 @@ handle_zone_to_name_it (void *cls,
1153 ztnr_msg->zone = *zone_key; 1157 ztnr_msg->zone = *zone_key;
1154 name_tmp = (char *) &ztnr_msg[1]; 1158 name_tmp = (char *) &ztnr_msg[1];
1155 if (NULL != name) 1159 if (NULL != name)
1156 memcpy (name_tmp, name, name_len); 1160 GNUNET_memcpy (name_tmp, name, name_len);
1157 rd_tmp = &name_tmp[name_len]; 1161 rd_tmp = &name_tmp[name_len];
1158 GNUNET_GNSRECORD_records_serialize (rd_count, rd, rd_ser_len, rd_tmp); 1162 GNUNET_GNSRECORD_records_serialize (rd_count, rd, rd_ser_len, rd_tmp);
1159 ztn_ctx->success = GNUNET_OK; 1163 ztn_ctx->success = GNUNET_OK;
diff --git a/src/namestore/namestore_api.c b/src/namestore/namestore_api.c
index afb7265d8..b8da654ce 100644
--- a/src/namestore/namestore_api.c
+++ b/src/namestore/namestore_api.c
@@ -992,7 +992,7 @@ GNUNET_NAMESTORE_records_store (struct GNUNET_NAMESTORE_Handle *h,
992 msg->private_key = *pkey; 992 msg->private_key = *pkey;
993 993
994 name_tmp = (char *) &msg[1]; 994 name_tmp = (char *) &msg[1];
995 memcpy (name_tmp, 995 GNUNET_memcpy (name_tmp,
996 label, 996 label,
997 name_len); 997 name_len);
998 rd_ser = &name_tmp[name_len]; 998 rd_ser = &name_tmp[name_len];
@@ -1095,7 +1095,7 @@ GNUNET_NAMESTORE_records_lookup (struct GNUNET_NAMESTORE_Handle *h,
1095 msg->gns_header.r_id = htonl (qe->op_id); 1095 msg->gns_header.r_id = htonl (qe->op_id);
1096 msg->zone = *pkey; 1096 msg->zone = *pkey;
1097 msg->label_len = htonl (label_len); 1097 msg->label_len = htonl (label_len);
1098 memcpy (&msg[1], 1098 GNUNET_memcpy (&msg[1],
1099 label, 1099 label,
1100 label_len); 1100 label_len);
1101 if (NULL == h->mq) 1101 if (NULL == h->mq)
diff --git a/src/namestore/plugin_namestore_flat.c b/src/namestore/plugin_namestore_flat.c
index 4356c3b93..36b045394 100644
--- a/src/namestore/plugin_namestore_flat.c
+++ b/src/namestore/plugin_namestore_flat.c
@@ -263,8 +263,8 @@ database_setup (struct Plugin *plugin)
263 (char**)&entry->private_key); 263 (char**)&entry->private_key);
264 key_len = strlen (label) + sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey); 264 key_len = strlen (label) + sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey);
265 key = GNUNET_malloc (strlen (label) + sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)); 265 key = GNUNET_malloc (strlen (label) + sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey));
266 memcpy (key, label, strlen (label)); 266 GNUNET_memcpy (key, label, strlen (label));
267 memcpy (key+strlen(label), 267 GNUNET_memcpy (key+strlen(label),
268 entry->private_key, 268 entry->private_key,
269 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)); 269 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey));
270 GNUNET_CRYPTO_hash (key, 270 GNUNET_CRYPTO_hash (key,
@@ -413,8 +413,8 @@ namestore_store_records (void *cls,
413 rvalue = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, UINT64_MAX); 413 rvalue = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, UINT64_MAX);
414 key_len = strlen (label) + sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey); 414 key_len = strlen (label) + sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey);
415 key = GNUNET_malloc (key_len); 415 key = GNUNET_malloc (key_len);
416 memcpy (key, label, strlen (label)); 416 GNUNET_memcpy (key, label, strlen (label));
417 memcpy (key+strlen(label), 417 GNUNET_memcpy (key+strlen(label),
418 zone_key, 418 zone_key,
419 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)); 419 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey));
420 GNUNET_CRYPTO_hash (key, 420 GNUNET_CRYPTO_hash (key,
@@ -430,7 +430,7 @@ namestore_store_records (void *cls,
430 GNUNET_asprintf (&entry->label, 430 GNUNET_asprintf (&entry->label,
431 label, 431 label,
432 strlen (label)); 432 strlen (label));
433 memcpy (entry->private_key, 433 GNUNET_memcpy (entry->private_key,
434 zone_key, 434 zone_key,
435 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)); 435 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey));
436 entry->rvalue = rvalue; 436 entry->rvalue = rvalue;
@@ -443,7 +443,7 @@ namestore_store_records (void *cls,
443 entry->record_data[i].flags = rd[i].flags; 443 entry->record_data[i].flags = rd[i].flags;
444 entry->record_data[i].data_size = rd[i].data_size; 444 entry->record_data[i].data_size = rd[i].data_size;
445 entry->record_data[i].data = GNUNET_malloc (rd[i].data_size); 445 entry->record_data[i].data = GNUNET_malloc (rd[i].data_size);
446 memcpy ((char*)entry->record_data[i].data, rd[i].data, rd[i].data_size); 446 GNUNET_memcpy ((char*)entry->record_data[i].data, rd[i].data, rd[i].data_size);
447 } 447 }
448 return GNUNET_CONTAINER_multihashmap_put (plugin->hm, 448 return GNUNET_CONTAINER_multihashmap_put (plugin->hm,
449 &hkey, 449 &hkey,
@@ -483,8 +483,8 @@ namestore_lookup_records (void *cls,
483 } 483 }
484 key_len = strlen (label) + sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey); 484 key_len = strlen (label) + sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey);
485 key = GNUNET_malloc (key_len); 485 key = GNUNET_malloc (key_len);
486 memcpy (key, label, strlen (label)); 486 GNUNET_memcpy (key, label, strlen (label));
487 memcpy (key+strlen(label), 487 GNUNET_memcpy (key+strlen(label),
488 zone, 488 zone,
489 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)); 489 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey));
490 GNUNET_CRYPTO_hash (key, 490 GNUNET_CRYPTO_hash (key,
diff --git a/src/namestore/plugin_namestore_postgres.c b/src/namestore/plugin_namestore_postgres.c
index 9118ca5cf..8ea6b43ad 100644
--- a/src/namestore/plugin_namestore_postgres.c
+++ b/src/namestore/plugin_namestore_postgres.c
@@ -228,7 +228,7 @@ namestore_postgres_store_records (void *cls,
228 if (GNUNET_GNSRECORD_TYPE_PKEY == rd[i].record_type) 228 if (GNUNET_GNSRECORD_TYPE_PKEY == rd[i].record_type)
229 { 229 {
230 GNUNET_break (sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey) == rd[i].data_size); 230 GNUNET_break (sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey) == rd[i].data_size);
231 memcpy (&pkey, 231 GNUNET_memcpy (&pkey,
232 rd[i].data, 232 rd[i].data,
233 rd[i].data_size); 233 rd[i].data_size);
234 break; 234 break;
@@ -363,7 +363,7 @@ get_record_and_call_iterator (struct Plugin *plugin,
363 struct GNUNET_GNSRECORD_Data rd[record_count]; 363 struct GNUNET_GNSRECORD_Data rd[record_count];
364 char buf[label_len + 1]; 364 char buf[label_len + 1];
365 365
366 memcpy (buf, label, label_len); 366 GNUNET_memcpy (buf, label, label_len);
367 buf[label_len] = '\0'; 367 buf[label_len] = '\0';
368 if (GNUNET_OK != 368 if (GNUNET_OK !=
369 GNUNET_GNSRECORD_records_deserialize (data_size, data, 369 GNUNET_GNSRECORD_records_deserialize (data_size, data,
diff --git a/src/namestore/plugin_namestore_sqlite.c b/src/namestore/plugin_namestore_sqlite.c
index 3710a4820..e93f800c3 100644
--- a/src/namestore/plugin_namestore_sqlite.c
+++ b/src/namestore/plugin_namestore_sqlite.c
@@ -372,7 +372,7 @@ namestore_sqlite_store_records (void *cls,
372 if (GNUNET_GNSRECORD_TYPE_PKEY == rd[i].record_type) 372 if (GNUNET_GNSRECORD_TYPE_PKEY == rd[i].record_type)
373 { 373 {
374 GNUNET_break (sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey) == rd[i].data_size); 374 GNUNET_break (sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey) == rd[i].data_size);
375 memcpy (&pkey, 375 GNUNET_memcpy (&pkey,
376 rd[i].data, 376 rd[i].data,
377 rd[i].data_size); 377 rd[i].data_size);
378 break; 378 break;
diff --git a/src/namestore/plugin_rest_namestore.c b/src/namestore/plugin_rest_namestore.c
index 78b6398c6..35d3595ce 100644
--- a/src/namestore/plugin_rest_namestore.c
+++ b/src/namestore/plugin_rest_namestore.c
@@ -744,7 +744,7 @@ namestore_create_cont (struct GNUNET_REST_RequestHandle *con,
744 return; 744 return;
745 } 745 }
746 term_data[handle->rest_handle->data_size] = '\0'; 746 term_data[handle->rest_handle->data_size] = '\0';
747 memcpy (term_data, 747 GNUNET_memcpy (term_data,
748 handle->rest_handle->data, 748 handle->rest_handle->data,
749 handle->rest_handle->data_size); 749 handle->rest_handle->data_size);
750 data_js = json_loads (term_data, 750 data_js = json_loads (term_data,
diff --git a/src/namestore/test_namestore_api_zone_to_name.c b/src/namestore/test_namestore_api_zone_to_name.c
index 12bc870b4..ca33ee280 100644
--- a/src/namestore/test_namestore_api_zone_to_name.c
+++ b/src/namestore/test_namestore_api_zone_to_name.c
@@ -199,7 +199,7 @@ run (void *cls,
199 rd.data_size = sizeof (struct GNUNET_CRYPTO_ShortHashCode); 199 rd.data_size = sizeof (struct GNUNET_CRYPTO_ShortHashCode);
200 rd.data = GNUNET_malloc(sizeof (struct GNUNET_CRYPTO_ShortHashCode)); 200 rd.data = GNUNET_malloc(sizeof (struct GNUNET_CRYPTO_ShortHashCode));
201 rd.flags = 0; 201 rd.flags = 0;
202 memcpy ((char *) rd.data, &s_zone_value, sizeof (struct GNUNET_CRYPTO_ShortHashCode)); 202 GNUNET_memcpy ((char *) rd.data, &s_zone_value, sizeof (struct GNUNET_CRYPTO_ShortHashCode));
203 nsh = GNUNET_NAMESTORE_connect (cfg); 203 nsh = GNUNET_NAMESTORE_connect (cfg);
204 GNUNET_break (NULL != nsh); 204 GNUNET_break (NULL != nsh);
205 205