From 5cba9a1df5ff320c75d7833439fc12f8304f2f98 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 15 Jul 2011 09:25:42 +0000 Subject: [PATCH] fix --- src/hostlist/test_gnunet_daemon_hostlist_learning.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/hostlist/test_gnunet_daemon_hostlist_learning.c b/src/hostlist/test_gnunet_daemon_hostlist_learning.c index 6124ba33f..3134f22ae 100644 --- a/src/hostlist/test_gnunet_daemon_hostlist_learning.c +++ b/src/hostlist/test_gnunet_daemon_hostlist_learning.c @@ -333,6 +333,7 @@ ad_arrive_handler (void *cls, char *expected_uri; unsigned long long port; const struct GNUNET_MessageHeader * incoming; + const char *end; if (-1 == GNUNET_CONFIGURATION_get_value_number (adv_peer.cfg, "HOSTLIST", @@ -354,7 +355,13 @@ ad_arrive_handler (void *cls, hostname != NULL ? hostname : "localhost", (unsigned int) port); incoming = (const struct GNUNET_MessageHeader *) message; - current_adv_uri = strdup ((char*) &incoming[1]); + end = (const char*) &incoming[1]; + if ('\0' != end[ntohs(message->size) - sizeof (struct GNUNET_MessageHeader) - 1]) + { + GNUNET_break (0); + return GNUNET_SYSERR; + } + current_adv_uri = GNUNET_strdup (end); if ( 0 == strcmp( expected_uri, current_adv_uri ) ) { GNUNET_log (GNUNET_ERROR_TYPE_INFO, -- 2.25.1