diff options
author | Martin Schanzenbach <mschanzenbach@posteo.de> | 2012-09-17 16:39:17 +0000 |
---|---|---|
committer | Martin Schanzenbach <mschanzenbach@posteo.de> | 2012-09-17 16:39:17 +0000 |
commit | 227bbaeddcc4faaf06d04511feee871c0ae000d2 (patch) | |
tree | bad2baaad39c77de14c3c214b065ebe9613268cf | |
parent | c4d19b5df08c59a991c793c8d9cb6432de760e48 (diff) | |
download | gnunet-227bbaeddcc4faaf06d04511feee871c0ae000d2.tar.gz gnunet-227bbaeddcc4faaf06d04511feee871c0ae000d2.zip |
-fix
-rw-r--r-- | src/gns/gnunet-dns2gns.c | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/src/gns/gnunet-dns2gns.c b/src/gns/gnunet-dns2gns.c index e6e5ec054..725dcd246 100644 --- a/src/gns/gnunet-dns2gns.c +++ b/src/gns/gnunet-dns2gns.c | |||
@@ -400,12 +400,42 @@ handle_request (struct GNUNET_NETWORK_Handle *lsock, | |||
400 | &name[name_len - strlen (fcfs_suffix)])) ) | 400 | &name[name_len - strlen (fcfs_suffix)])) ) |
401 | { | 401 | { |
402 | name[name_len - strlen (fcfs_suffix)] = '\0'; | 402 | name[name_len - strlen (fcfs_suffix)] = '\0'; |
403 | sprintf (name, "%s.%s", name, GNUNET_GNS_TLD); | 403 | if (0 == strcmp (name, "")) |
404 | strcpy (name, GNUNET_GNS_TLD); | ||
405 | else | ||
406 | { | ||
407 | if (sizeof (name) < (strlen (GNUNET_GNS_TLD)+strlen (name))) | ||
408 | { | ||
409 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
410 | "Name %s.%s is too long!\n", | ||
411 | name, | ||
412 | GNUNET_GNS_TLD); | ||
413 | GNUNET_DNSPARSER_free_packet (request->packet); | ||
414 | return; | ||
415 | } | ||
416 | sprintf (name, "%s.%s", name, GNUNET_GNS_TLD); | ||
417 | } | ||
404 | } | 418 | } |
405 | else | 419 | else |
406 | { | 420 | { |
407 | name[name_len - strlen (dns_suffix) + 1] = '\0'; | 421 | name[name_len - strlen (dns_suffix)] = '\0'; |
408 | strcat (name, GNUNET_GNS_TLD_ZKEY); | 422 | if (0 == strcmp (name, "")) |
423 | { | ||
424 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
425 | "No zkey given!\n"); | ||
426 | GNUNET_DNSPARSER_free_packet (request->packet); | ||
427 | return; | ||
428 | } | ||
429 | if (sizeof (name) < (strlen (GNUNET_GNS_TLD_ZKEY)+strlen (name))) | ||
430 | { | ||
431 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
432 | "Name %s.%s is too long!\n", | ||
433 | name, | ||
434 | GNUNET_GNS_TLD); | ||
435 | GNUNET_DNSPARSER_free_packet (request->packet); | ||
436 | return; | ||
437 | } | ||
438 | sprintf (name, "%s.%s", name, GNUNET_GNS_TLD_ZKEY); | ||
409 | } | 439 | } |
410 | name_len = strlen (name); | 440 | name_len = strlen (name); |
411 | } | 441 | } |