summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2019-11-25 13:33:45 +0100
committerAleksander Morgado <aleksander@aleksander.es>2019-11-25 15:06:18 +0100
commit404de179081c52ae310adae16788fb5f68e7d30a (patch)
treefe43a07ec53b5f75dfe9cf8d3125e5176b2bb7c3
parentd08dd6f0071f94838c5f6fd78413c7f51461ba8e (diff)
libmbim-glib,message: allow NULL length output when getting information buffer
-rw-r--r--src/libmbim-glib/mbim-message.c39
-rw-r--r--src/libmbim-glib/mbim-message.h6
2 files changed, 27 insertions, 18 deletions
diff --git a/src/libmbim-glib/mbim-message.c b/src/libmbim-glib/mbim-message.c
index c795784..5bb0ebe 100644
--- a/src/libmbim-glib/mbim-message.c
+++ b/src/libmbim-glib/mbim-message.c
@@ -2047,7 +2047,7 @@ mbim_message_command_get_command_type (const MbimMessage *self)
/**
* mbim_message_command_get_raw_information_buffer:
* @self: a #MbimMessage.
- * @length: (out): return location for the size of the output buffer.
+ * @out_length: (out): return location for the size of the output buffer.
*
* Gets the information buffer of the %MBIM_MESSAGE_TYPE_COMMAND message.
*
@@ -2055,15 +2055,18 @@ mbim_message_command_get_command_type (const MbimMessage *self)
*/
const guint8 *
mbim_message_command_get_raw_information_buffer (const MbimMessage *self,
- guint32 *length)
+ guint32 *out_length)
{
+ guint32 length;
+
g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (length != NULL, NULL);
g_return_val_if_fail (MBIM_MESSAGE_GET_MESSAGE_TYPE (self) == MBIM_MESSAGE_TYPE_COMMAND, NULL);
- *length = GUINT32_FROM_LE (((struct full_message *)(self->data))->message.command.buffer_length);
+ length = GUINT32_FROM_LE (((struct full_message *)(self->data))->message.command.buffer_length);
+ if (out_length)
+ *out_length = length;
- return (*length > 0 ?
+ return (length > 0 ?
((struct full_message *)(self->data))->message.command.buffer :
NULL);
}
@@ -2168,7 +2171,7 @@ mbim_message_command_done_get_result (const MbimMessage *self,
/**
* mbim_message_command_done_get_raw_information_buffer:
* @self: a #MbimMessage.
- * @length: (out): return location for the size of the output buffer.
+ * @out_length: (out): return location for the size of the output buffer.
*
* Gets the information buffer of the %MBIM_MESSAGE_TYPE_COMMAND_DONE message.
*
@@ -2176,15 +2179,18 @@ mbim_message_command_done_get_result (const MbimMessage *self,
*/
const guint8 *
mbim_message_command_done_get_raw_information_buffer (const MbimMessage *self,
- guint32 *length)
+ guint32 *out_length)
{
+ guint32 length;
+
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (MBIM_MESSAGE_GET_MESSAGE_TYPE (self) == MBIM_MESSAGE_TYPE_COMMAND_DONE, NULL);
- g_return_val_if_fail (length != NULL, NULL);
- *length = GUINT32_FROM_LE (((struct full_message *)(self->data))->message.command_done.buffer_length);
+ length = GUINT32_FROM_LE (((struct full_message *)(self->data))->message.command_done.buffer_length);
+ if (out_length)
+ *out_length = length;
- return (*length > 0 ?
+ return (length > 0 ?
((struct full_message *)(self->data))->message.command_done.buffer :
NULL);
}
@@ -2246,7 +2252,7 @@ mbim_message_indicate_status_get_cid (const MbimMessage *self)
/**
* mbim_message_indicate_status_get_raw_information_buffer:
* @self: a #MbimMessage.
- * @length: (out): return location for the size of the output buffer.
+ * @out_length: (out): return location for the size of the output buffer.
*
* Gets the information buffer of the %MBIM_MESSAGE_TYPE_INDICATE_STATUS message.
*
@@ -2254,15 +2260,18 @@ mbim_message_indicate_status_get_cid (const MbimMessage *self)
*/
const guint8 *
mbim_message_indicate_status_get_raw_information_buffer (const MbimMessage *self,
- guint32 *length)
+ guint32 *out_length)
{
+ guint32 length;
+
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (MBIM_MESSAGE_GET_MESSAGE_TYPE (self) == MBIM_MESSAGE_TYPE_INDICATE_STATUS, NULL);
- g_return_val_if_fail (length != NULL, NULL);
- *length = GUINT32_FROM_LE (((struct full_message *)(self->data))->message.indicate_status.buffer_length);
+ length = GUINT32_FROM_LE (((struct full_message *)(self->data))->message.indicate_status.buffer_length);
+ if (out_length)
+ *out_length = length;
- return (*length > 0 ?
+ return (length > 0 ?
((struct full_message *)(self->data))->message.indicate_status.buffer :
NULL);
}
diff --git a/src/libmbim-glib/mbim-message.h b/src/libmbim-glib/mbim-message.h
index 02154b7..033cd16 100644
--- a/src/libmbim-glib/mbim-message.h
+++ b/src/libmbim-glib/mbim-message.h
@@ -191,7 +191,7 @@ const MbimUuid *mbim_message_command_get_service_id (const M
guint32 mbim_message_command_get_cid (const MbimMessage *self);
MbimMessageCommandType mbim_message_command_get_command_type (const MbimMessage *self);
const guint8 *mbim_message_command_get_raw_information_buffer (const MbimMessage *self,
- guint32 *length);
+ guint32 *out_length);
/*****************************************************************************/
/* 'Command Done' message interface */
@@ -203,7 +203,7 @@ MbimStatusError mbim_message_command_done_get_status_code (const Mbi
gboolean mbim_message_command_done_get_result (const MbimMessage *self,
GError **error);
const guint8 *mbim_message_command_done_get_raw_information_buffer (const MbimMessage *self,
- guint32 *length);
+ guint32 *out_length);
/*****************************************************************************/
/* 'Indicate Status' message interface */
@@ -212,7 +212,7 @@ MbimService mbim_message_indicate_status_get_service (const
const MbimUuid *mbim_message_indicate_status_get_service_id (const MbimMessage *self);
guint32 mbim_message_indicate_status_get_cid (const MbimMessage *self);
const guint8 *mbim_message_indicate_status_get_raw_information_buffer (const MbimMessage *self,
- guint32 *length);
+ guint32 *out_length);
/*****************************************************************************/
/* Other helpers */