gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] branch master updated: fix #9328


From: gnunet
Subject: [gnunet] branch master updated: fix #9328
Date: Mon, 11 Nov 2024 08:07:37 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new 27d340103 fix #9328
27d340103 is described below

commit 27d340103a3ce17eb44b30e3c0cce200f52bd931
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Mon Nov 11 08:07:32 2024 +0100

    fix #9328
---
 src/lib/util/dnsparser.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/src/lib/util/dnsparser.c b/src/lib/util/dnsparser.c
index 3b9687d65..b5403646c 100644
--- a/src/lib/util/dnsparser.c
+++ b/src/lib/util/dnsparser.c
@@ -1300,13 +1300,14 @@ add_record (char *dst,
   size_t pos;
   struct GNUNET_TUN_DnsRecordLine rl;
 
+  if (dst_len < sizeof(struct GNUNET_TUN_DnsRecordLine))
+    return GNUNET_NO;
   start = *off;
-  ret = GNUNET_DNSPARSER_builder_add_name (dst,
-                                           dst_len
-                                           - sizeof(
-                                             struct GNUNET_TUN_DnsRecordLine),
-                                           off,
-                                           record->name);
+  ret = GNUNET_DNSPARSER_builder_add_name (
+    dst,
+    dst_len - sizeof(struct GNUNET_TUN_DnsRecordLine),
+    off,
+    record->name);
   if (GNUNET_OK != ret)
     return ret;
   /* '*off' is now the position where we will need to write the record line */
@@ -1336,19 +1337,17 @@ add_record (char *dst,
                                              &pos,
                                              record->data.hostname);
     break;
-
   case GNUNET_DNSPARSER_TYPE_SRV:
     ret =
       GNUNET_DNSPARSER_builder_add_srv (dst, dst_len, &pos, record->data.srv);
     break;
-
   case GNUNET_DNSPARSER_TYPE_URI:
     ret =
       GNUNET_DNSPARSER_builder_add_uri (dst, dst_len, &pos, record->data.uri);
     break;
-
   default:
-    if (pos + record->data.raw.data_len > dst_len)
+    if ( (pos + record->data.raw.data_len < pos) ||
+         (pos + record->data.raw.data_len > dst_len) )
     {
       ret = GNUNET_NO;
       break;

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]