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, _______________________________________________ GNUnet-SVN mailing list GNUnet-SVN@gnu.org http://lists.gnu.org/mailman/listinfo/gnunet-svn