gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r6478 - GNUnet/src/applications/chat


From: gnunet
Subject: [GNUnet-SVN] r6478 - GNUnet/src/applications/chat
Date: Wed, 27 Feb 2008 15:29:18 -0700 (MST)

Author: nevans
Date: 2008-02-27 15:29:18 -0700 (Wed, 27 Feb 2008)
New Revision: 6478

Modified:
   GNUnet/src/applications/chat/chat.h
   GNUnet/src/applications/chat/clientapi.c
Log:
NOT GOOD

Modified: GNUnet/src/applications/chat/chat.h
===================================================================
--- GNUnet/src/applications/chat/chat.h 2008-02-27 22:28:57 UTC (rev 6477)
+++ GNUnet/src/applications/chat/chat.h 2008-02-27 22:29:18 UTC (rev 6478)
@@ -32,29 +32,19 @@
 typedef struct
 {
   GNUNET_MessageHeader header;
-  unsigned long nick_len;
-  unsigned long msg_len;
-  unsigned long room_name_len;
+  int nick_len;
+  int msg_len;
+  /*int room_name_len;*/
   char nick[1];
 
-} P2P_chat_MESSAGE;
-
-typedef struct
-{
-  GNUNET_MessageHeader header;
-  unsigned long nick_len;
-  unsigned long msg_len;
-  unsigned long room_name_len;
-  char nick[1];
-
 } CS_chat_MESSAGE;
 
 typedef struct
 {
   GNUNET_MessageHeader header;
-  unsigned long nick_len;
-  unsigned long pubkey_len;
-  unsigned long room_name_len;
+  int nick_len;
+  int pubkey_len;
+  /*int room_name_len;*/
   char nick[1];
 
 } CS_chat_JOIN_MESSAGE;

Modified: GNUnet/src/applications/chat/clientapi.c
===================================================================
--- GNUnet/src/applications/chat/clientapi.c    2008-02-27 22:28:57 UTC (rev 
6477)
+++ GNUnet/src/applications/chat/clientapi.c    2008-02-27 22:29:18 UTC (rev 
6478)
@@ -95,22 +95,21 @@
 
       received_msg = (CS_chat_MESSAGE *) reply;
 
-      nick_len = ntohl (received_msg->nick_len);
-      msg_len = ntohl (received_msg->msg_len);
+      nick_len = ntohs (received_msg->nick_len);
+      msg_len = ntohs (received_msg->msg_len);
       /* NO NEED TO SEND ROOM! */
-      room_name_len = ntohl (received_msg->room_name_len);
+      room_name_len = size - nick_len - msg_len - sizeof(CS_chat_MESSAGE) - 
sizeof(GNUNET_MessageHeader);
 
       if (size < (nick_len + msg_len + room_name_len))
         {
           GNUNET_GE_BREAK (NULL, 0);
-          return GNUNET_SYSERR; /* invalid message */
+          return NULL; /* invalid message */
         }
 
       nick = GNUNET_malloc (nick_len + 1);
       message_content = GNUNET_malloc (msg_len + 1);
       room_name = GNUNET_malloc (room_name_len + 1);
 
-      /* BUFFER OVERFLOWS! */
       memcpy (nick, &received_msg->nick[0], nick_len);
       memcpy (message_content, &received_msg->nick[nick_len], msg_len);
       memcpy (room_name, &received_msg->nick[nick_len + msg_len],
@@ -194,9 +193,9 @@
     sizeof (GNUNET_RSA_PublicKey) + strlen (room_name);
   join_msg = GNUNET_malloc (size_of_join);
 
-  join_msg->nick_len = htonl (strlen (nickname));
-  join_msg->pubkey_len = htonl (sizeof (GNUNET_RSA_PublicKey));
-  join_msg->room_name_len = htonl (strlen (room_name));
+  join_msg->nick_len = htons (strlen (nickname));
+  join_msg->pubkey_len = htons (sizeof (GNUNET_RSA_PublicKey));
+  //join_msg->room_name_len = htonl (strlen (room_name));
 
 
   memcpy (&join_msg->nick[0], nickname, strlen (nickname));
@@ -270,9 +269,9 @@
     sizeof (GNUNET_RSA_PublicKey) + strlen (chat_room->room_name);
   join_msg = GNUNET_malloc (size_of_join);
 
-  join_msg->nick_len = htonl (strlen (chat_room->nickname));
-  join_msg->pubkey_len = htonl (sizeof (GNUNET_RSA_PublicKey));
-  join_msg->room_name_len = htonl (strlen (chat_room->room_name));
+  join_msg->nick_len = htons (strlen (chat_room->nickname));
+  join_msg->pubkey_len = htons (sizeof (GNUNET_RSA_PublicKey));
+  //join_msg->room_name_len = htonl (strlen (chat_room->room_name));
 
 
   memcpy (&join_msg->nick[0], chat_room->nickname,
@@ -340,11 +339,11 @@
            strlen (room->room_name));
   cs_msg_hdr.type = htons (GNUNET_CS_PROTO_CHAT_MSG);
 
-  msg_to_send = GNUNET_malloc (ntohl (cs_msg_hdr.size));
+  msg_to_send = GNUNET_malloc (ntohs (cs_msg_hdr.size));
 
-  msg_to_send->nick_len = htonl (strlen (room->nickname));
-  msg_to_send->msg_len = htonl (strlen (message));
-  msg_to_send->room_name_len = htonl (strlen (room->room_name));
+  msg_to_send->nick_len = htons (strlen (room->nickname));
+  msg_to_send->msg_len = htons (strlen (message));
+  //msg_to_send->room_name_len = htonl (strlen (room->room_name));
 
   memcpy (&msg_to_send->nick[0], room->nickname, strlen (room->nickname));
   memcpy (&msg_to_send->nick[strlen (room->nickname)], message,





reply via email to

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