diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index 2c1b41c..3a0f3c2 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
{
obex_headerdata_t hd;
gint32 len;
+ guint8 *ptr;
debug("obex_write_stream: name=%s type=%s tx_mtu=%d fd=%d",
os->name ? os->name : "", os->type ? os->type : "",
if (os->buf == NULL)
return -EIO;
- len = os->size - os->offset;
+ len = MIN(os->size - os->offset, os->tx_mtu);
+ ptr = os->buf + os->offset;
goto add_header;
}
return -err;
}
+ ptr = os->buf;
+
add_header:
+
+ hd.bs = ptr;
+
if (len == 0) {
OBEX_ObjectAddHeader(obex, obj, OBEX_HDR_BODY, hd, 0,
OBEX_FL_STREAM_DATAEND);
return len;
}
- hd.bs = os->buf;
os->offset += len;
OBEX_ObjectAddHeader(obex, obj, OBEX_HDR_BODY, hd, len,