[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet] branch master updated: -fixed problem of uninitialized memory b
From: |
gnunet |
Subject: |
[gnunet] branch master updated: -fixed problem of uninitialized memory by not using it |
Date: |
Mon, 22 Nov 2021 14:46:06 +0100 |
This is an automated email from the git hooks/post-receive script.
thejackimonster pushed a commit to branch master
in repository gnunet.
The following commit(s) were added to refs/heads/master by this push:
new b57f92ee9 -fixed problem of uninitialized memory by not using it
b57f92ee9 is described below
commit b57f92ee938794a862c93c3dcc5cd47f061c4cb4
Author: TheJackiMonster <thejackimonster@gmail.com>
AuthorDate: Mon Nov 22 14:45:56 2021 +0100
-fixed problem of uninitialized memory by not using it
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
---
src/messenger/gnunet-messenger.c | 2 -
src/messenger/gnunet-service-messenger.c | 2 +-
.../gnunet-service-messenger_message_store.c | 2 +-
src/messenger/gnunet-service-messenger_tunnel.c | 2 +-
src/messenger/messenger_api.c | 2 +-
src/messenger/messenger_api_message.c | 59 ++++++++++++++--------
src/messenger/messenger_api_message.h | 15 +++---
7 files changed, 51 insertions(+), 33 deletions(-)
diff --git a/src/messenger/gnunet-messenger.c b/src/messenger/gnunet-messenger.c
index 0d23a225b..e2d106be8 100644
--- a/src/messenger/gnunet-messenger.c
+++ b/src/messenger/gnunet-messenger.c
@@ -170,7 +170,6 @@ read_stdio (void *cls)
struct GNUNET_MESSENGER_Room *room = cls;
struct GNUNET_MESSENGER_Message message;
- memset(&message, 0, sizeof(message));
message.header.kind = GNUNET_MESSENGER_KIND_TEXT;
message.body.text.text = buffer;
@@ -278,7 +277,6 @@ on_identity (void *cls,
else
{
struct GNUNET_MESSENGER_Message message;
- memset(&message, 0, sizeof(message));
message.header.kind = GNUNET_MESSENGER_KIND_NAME;
message.body.name.name = GNUNET_strdup(name);
diff --git a/src/messenger/gnunet-service-messenger.c
b/src/messenger/gnunet-service-messenger.c
index 67a8b16e3..546f4c0d2 100644
--- a/src/messenger/gnunet-service-messenger.c
+++ b/src/messenger/gnunet-service-messenger.c
@@ -221,7 +221,7 @@ check_for_message:
struct GNUNET_MESSENGER_Message message;
- if (length < get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN))
+ if (length < get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN, GNUNET_NO))
return GNUNET_NO;
if (GNUNET_YES != decode_message (&message, msg_length, msg_buffer,
GNUNET_NO, NULL))
diff --git a/src/messenger/gnunet-service-messenger_message_store.c
b/src/messenger/gnunet-service-messenger_message_store.c
index 56448997a..ce20ac924 100644
--- a/src/messenger/gnunet-service-messenger_message_store.c
+++ b/src/messenger/gnunet-service-messenger_message_store.c
@@ -427,7 +427,7 @@ get_store_message (struct GNUNET_MESSENGER_MessageStore
*store,
return NULL;
if ((GNUNET_DISK_file_read (store->storage_messages, buffer, entry->length)
!= entry->length) ||
- (entry->length < get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN)))
+ (entry->length < get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN,
GNUNET_YES)))
goto free_buffer;
message = create_message (GNUNET_MESSENGER_KIND_UNKNOWN);
diff --git a/src/messenger/gnunet-service-messenger_tunnel.c
b/src/messenger/gnunet-service-messenger_tunnel.c
index c21f298b3..45c10c1af 100644
--- a/src/messenger/gnunet-service-messenger_tunnel.c
+++ b/src/messenger/gnunet-service-messenger_tunnel.c
@@ -122,7 +122,7 @@ check_tunnel_message (void *cls,
struct GNUNET_MESSENGER_Message message;
- if (length < get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN))
+ if (length < get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN,
GNUNET_YES))
{
GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "Tunnel error: Message too short!
(%d)\n", length);
return GNUNET_SYSERR;
diff --git a/src/messenger/messenger_api.c b/src/messenger/messenger_api.c
index 81a02e858..2db841315 100644
--- a/src/messenger/messenger_api.c
+++ b/src/messenger/messenger_api.c
@@ -208,7 +208,7 @@ check_recv_message (void *cls,
struct GNUNET_MESSENGER_Message message;
- if (length < get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN))
+ if (length < get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN,
GNUNET_YES))
return GNUNET_NO;
if (GNUNET_YES != decode_message (&message, length, buffer, GNUNET_YES,
NULL))
diff --git a/src/messenger/messenger_api_message.c
b/src/messenger/messenger_api_message.c
index 4e64cc22f..496c98dbf 100644
--- a/src/messenger/messenger_api_message.c
+++ b/src/messenger/messenger_api_message.c
@@ -229,13 +229,18 @@ get_message_body_kind_size (enum
GNUNET_MESSENGER_MessageKind kind)
typedef uint32_t kind_t;
uint16_t
-get_message_kind_size (enum GNUNET_MESSENGER_MessageKind kind)
+get_message_kind_size (enum GNUNET_MESSENGER_MessageKind kind,
+ int include_header)
{
uint16_t length = 0;
- length += member_size(struct GNUNET_MESSENGER_Message, header.timestamp);
- length += member_size(struct GNUNET_MESSENGER_Message, header.sender_id);
- length += member_size(struct GNUNET_MESSENGER_Message, header.previous);
+ if (GNUNET_YES == include_header)
+ {
+ length += member_size(struct GNUNET_MESSENGER_Message, header.timestamp);
+ length += member_size(struct GNUNET_MESSENGER_Message, header.sender_id);
+ length += member_size(struct GNUNET_MESSENGER_Message, header.previous);
+ }
+
length += sizeof(kind_t);
return length + get_message_body_kind_size (kind);
@@ -279,16 +284,16 @@ get_message_body_size (enum GNUNET_MESSENGER_MessageKind
kind,
uint16_t
get_message_size (const struct GNUNET_MESSENGER_Message *message,
- int include_signature)
+ int include_header)
{
GNUNET_assert(message);
uint16_t length = 0;
- if (GNUNET_YES == include_signature)
+ if (GNUNET_YES == include_header)
length +=
GNUNET_IDENTITY_signature_get_length(&(message->header.signature));
- length += get_message_kind_size (message->header.kind);
+ length += get_message_kind_size (message->header.kind, include_header);
length += get_message_body_size (message->header.kind, &(message->body));
return length;
@@ -314,7 +319,7 @@ calc_usual_padding ()
uint16_t kind_size;
for (int i = 0; i <= GNUNET_MESSENGER_KIND_MAX; i++) {
- kind_size = get_message_kind_size ((enum GNUNET_MESSENGER_MessageKind) i);
+ kind_size = get_message_kind_size ((enum GNUNET_MESSENGER_MessageKind) i,
GNUNET_YES);
if (kind_size > padding)
padding = kind_size;
@@ -464,20 +469,24 @@ void
encode_message (const struct GNUNET_MESSENGER_Message *message,
uint16_t length,
char *buffer,
- int include_signature)
+ int include_header)
{
GNUNET_assert((message) && (buffer));
uint16_t offset = 0;
- if (GNUNET_YES == include_signature)
+ if (GNUNET_YES == include_header)
encode_step_signature(buffer, offset, &(message->header.signature),
length);
const kind_t kind = GNUNET_htobe32((kind_t) message->header.kind);
- encode_step(buffer, offset, &(message->header.timestamp));
- encode_step(buffer, offset, &(message->header.sender_id));
- encode_step(buffer, offset, &(message->header.previous));
+ if (GNUNET_YES == include_header)
+ {
+ encode_step(buffer, offset, &(message->header.timestamp));
+ encode_step(buffer, offset, &(message->header.sender_id));
+ encode_step(buffer, offset, &(message->header.previous));
+ }
+
encode_step(buffer, offset, &kind);
encode_message_body (message->header.kind, &(message->body), length, buffer,
offset);
@@ -619,14 +628,18 @@ int
decode_message (struct GNUNET_MESSENGER_Message *message,
uint16_t length,
const char *buffer,
- int include_signature,
+ int include_header,
uint16_t *padding)
{
- GNUNET_assert((message) && (buffer) && (length >=
get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN)));
+ GNUNET_assert(
+ (message) &&
+ (buffer) &&
+ (length >= get_message_kind_size(GNUNET_MESSENGER_KIND_UNKNOWN,
include_header))
+ );
uint16_t offset = 0;
- if (GNUNET_YES == include_signature)
+ if (GNUNET_YES == include_header)
{
ssize_t result = GNUNET_IDENTITY_read_signature_from_buffer(
&(message->header.signature), buffer, length - offset
@@ -640,19 +653,23 @@ decode_message (struct GNUNET_MESSENGER_Message *message,
const uint16_t count = length - offset;
- if (count < get_message_kind_size (GNUNET_MESSENGER_KIND_UNKNOWN))
+ if (count < get_message_kind_size (GNUNET_MESSENGER_KIND_UNKNOWN,
include_header))
return GNUNET_NO;
kind_t kind;
- decode_step(buffer, offset, &(message->header.timestamp));
- decode_step(buffer, offset, &(message->header.sender_id));
- decode_step(buffer, offset, &(message->header.previous));
+ if (GNUNET_YES == include_header)
+ {
+ decode_step(buffer, offset, &(message->header.timestamp));
+ decode_step(buffer, offset, &(message->header.sender_id));
+ decode_step(buffer, offset, &(message->header.previous));
+ }
+
decode_step(buffer, offset, &kind);
message->header.kind = (enum GNUNET_MESSENGER_MessageKind)
GNUNET_be32toh(kind);
- if (count < get_message_kind_size (message->header.kind))
+ if (count < get_message_kind_size (message->header.kind, include_header))
return GNUNET_NO;
const uint16_t result = decode_message_body (&(message->header.kind),
&(message->body), length, buffer, offset);
diff --git a/src/messenger/messenger_api_message.h
b/src/messenger/messenger_api_message.h
index 21161c134..46c5cb024 100644
--- a/src/messenger/messenger_api_message.h
+++ b/src/messenger/messenger_api_message.h
@@ -90,21 +90,23 @@ is_message_session_bound (const struct
GNUNET_MESSENGER_Message *message);
* Returns the minimal size in bytes to encode a message of a specific
<i>kind</i>.
*
* @param[in] kind Kind of message
+ * @param[in] include_header Flag to include header
* @return Minimal size to encode
*/
uint16_t
-get_message_kind_size (enum GNUNET_MESSENGER_MessageKind kind);
+get_message_kind_size (enum GNUNET_MESSENGER_MessageKind kind,
+ int include_header);
/**
* Returns the exact size in bytes to encode a given <i>message</i>.
*
* @param[in] message Message
- * @param[in] encode_signature Flag to include signature
+ * @param[in] include_header Flag to include header
* @return Size to encode
*/
uint16_t
get_message_size (const struct GNUNET_MESSENGER_Message *message,
- int include_signature);
+ int include_header);
/**
* Encodes a given <i>message</i> into a <i>buffer</i> of a maximal
<i>length</i> in bytes.
@@ -112,13 +114,13 @@ get_message_size (const struct GNUNET_MESSENGER_Message
*message,
* @param[in] message Message
* @param[in] length Maximal length to encode
* @param[out] buffer Buffer
- * @param[in] encode_signature Flag to include signature
+ * @param[in] include_header Flag to include header
*/
void
encode_message (const struct GNUNET_MESSENGER_Message *message,
uint16_t length,
char *buffer,
- int include_signature);
+ int include_header);
/**
* Decodes a <i>message</i> from a given <i>buffer</i> of a maximal
<i>length</i> in bytes.
@@ -131,6 +133,7 @@ encode_message (const struct GNUNET_MESSENGER_Message
*message,
* @param[out] message Message
* @param[in] length Maximal length to decode
* @param[in] buffer Buffer
+ * @param[in] include_header Flag to include header
* @param[out] padding Padding
* @return #GNUNET_YES on success, otherwise #GNUNET_NO
*/
@@ -138,7 +141,7 @@ int
decode_message (struct GNUNET_MESSENGER_Message *message,
uint16_t length,
const char *buffer,
- int include_signature,
+ int include_header,
uint16_t *padding);
/**
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnunet] branch master updated: -fixed problem of uninitialized memory by not using it,
gnunet <=