diff --git a/gobex/gobex-header.c b/gobex/gobex-header.c
index fe70c8b..ed7fd08 100644
--- a/gobex/gobex-header.c
+++ b/gobex/gobex-header.c
GError *conv_err = NULL;
if (len < 2) {
+ if (!err)
+ return NULL;
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Too short header in packet");
g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
diff --git a/gobex/gobex-packet.c b/gobex/gobex-packet.c
index 4c14cf7..db56ed0 100644
--- a/gobex/gobex-packet.c
+++ b/gobex/gobex-packet.c
g_obex_debug(G_OBEX_DEBUG_PACKET, "");
if (data_policy == G_OBEX_DATA_INHERIT) {
+ if (!err)
+ return NULL;
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_INVALID_ARGS,
"Invalid data policy");
g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
}
if (len < 3 + header_offset) {
+ if (!err)
+ return NULL;
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Not enough data to decode packet");
g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
packet_len = g_ntohs(packet_len);
if (packet_len != len) {
+ if (!err)
+ return NULL;
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Incorrect packet length (%u != %zu)",
packet_len, len);
diff --git a/gobex/gobex.c b/gobex/gobex.c
index e7b081f..e9a08fa 100644
--- a/gobex/gobex.c
+++ b/gobex/gobex.c
{
if (obex->io == NULL) {
+ if (!err)
+ return FALSE;
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_DISCONNECTED,
"The transport is not connected");
g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
g_obex_debug(G_OBEX_DEBUG_COMMAND, "conn %u", obex->conn_id);
if (obex == NULL || pkt == NULL) {
+ if (!err)
+ return FALSE;
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_INVALID_ARGS,
"Invalid arguments");
g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
obex->rx_pkt_len = g_ntohs(u16);
if (obex->rx_pkt_len > obex->rx_mtu) {
+ if (!err)
+ return FALSE;
g_set_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR,
"Too big incoming packet");
g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
return TRUE;
fail:
- g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
+ if (err)
+ g_obex_debug(G_OBEX_DEBUG_ERROR, "%s", (*err)->message);
+
return FALSE;
}