diff --git a/Makefile.am b/Makefile.am
index a26ba9b..e391d7a 100644
--- a/Makefile.am
+++ b/Makefile.am
unit_test_gobex_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
unit/test-gobex.c
-unit_test_gobex_LDADD = $(GLIB_LIBS)
+unit_test_gobex_LDADD = src/libshared-glib.la $(GLIB_LIBS)
unit_test_gobex_packet_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
unit/test-gobex-packet.c
-unit_test_gobex_packet_LDADD = $(GLIB_LIBS)
+unit_test_gobex_packet_LDADD = src/libshared-glib.la $(GLIB_LIBS)
unit_test_gobex_header_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
unit/test-gobex-header.c
-unit_test_gobex_header_LDADD = $(GLIB_LIBS)
+unit_test_gobex_header_LDADD = src/libshared-glib.la $(GLIB_LIBS)
unit_test_gobex_transfer_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
unit/test-gobex-transfer.c
-unit_test_gobex_transfer_LDADD = $(GLIB_LIBS)
+unit_test_gobex_transfer_LDADD = src/libshared-glib.la $(GLIB_LIBS)
unit_test_gobex_apparam_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
unit/test-gobex-apparam.c
-unit_test_gobex_apparam_LDADD = $(GLIB_LIBS)
+unit_test_gobex_apparam_LDADD = src/libshared-glib.la $(GLIB_LIBS)
endif
unit_tests += unit/test-lib
diff --git a/Makefile.obexd b/Makefile.obexd
index 37a1334..5d1a4ff 100644
--- a/Makefile.obexd
+++ b/Makefile.obexd
obexd/src/map_ap.h
obexd_src_obexd_LDADD = lib/libbluetooth-internal.la \
gdbus/libgdbus-internal.la \
+ src/libshared-glib.la \
$(ICAL_LIBS) $(DBUS_LIBS) $(LIBEBOOK_LIBS) \
$(LIBEDATASERVER_LIBS) $(GLIB_LIBS) -ldl
diff --git a/Makefile.tools b/Makefile.tools
index 0f0331b..51199b2 100644
--- a/Makefile.tools
+++ b/Makefile.tools
tools_mpris_proxy_LDADD = gdbus/libgdbus-internal.la $(GLIB_LIBS) $(DBUS_LIBS)
tools_gatt_service_SOURCES = tools/gatt-service.c
-tools_gatt_service_LDADD = $(GLIB_LIBS) $(DBUS_LIBS) gdbus/libgdbus-internal.la
+tools_gatt_service_LDADD = gdbus/libgdbus-internal.la \
+ src/libshared-mainloop.la $(GLIB_LIBS) $(DBUS_LIBS)
profiles_iap_iapd_SOURCES = profiles/iap/main.c
profiles_iap_iapd_LDADD = gdbus/libgdbus-internal.la $(GLIB_LIBS) $(DBUS_LIBS)
tools_obex_client_tool_SOURCES = $(gobex_sources) $(btio_sources) \
tools/obex-client-tool.c
tools_obex_client_tool_LDADD = lib/libbluetooth-internal.la \
- $(GLIB_LIBS) -lreadline
+ src/libshared-glib.la $(GLIB_LIBS) -lreadline
tools_obex_server_tool_SOURCES = $(gobex_sources) $(btio_sources) \
tools/obex-server-tool.c
-tools_obex_server_tool_LDADD = lib/libbluetooth-internal.la $(GLIB_LIBS)
+tools_obex_server_tool_LDADD = lib/libbluetooth-internal.la \
+ src/libshared-glib.la $(GLIB_LIBS)
tools_bluetooth_player_SOURCES = tools/bluetooth-player.c
tools_bluetooth_player_LDADD = gdbus/libgdbus-internal.la \
tools_obexctl_SOURCES = tools/obexctl.c
tools_obexctl_LDADD = gdbus/libgdbus-internal.la src/libshared-glib.la \
- $(GLIB_LIBS) $(DBUS_LIBS) -lreadline
+ src/libshared-glib.la $(GLIB_LIBS) $(DBUS_LIBS) \
+ -lreadline
tools_btmgmt_SOURCES = tools/btmgmt.c src/uuid-helper.c client/display.c
tools_btmgmt_LDADD = lib/libbluetooth-internal.la src/libshared-mainloop.la \
diff --git a/android/a2dp.c b/android/a2dp.c
index 029107c..ee607a3 100644
--- a/android/a2dp.c
+++ b/android/a2dp.c
#include "lib/sdp_lib.h"
#include "profiles/audio/a2dp-codecs.h"
#include "src/shared/queue.h"
+#include "src/shared/util.h"
#include "src/log.h"
#include "hal-msg.h"
#include "ipc-common.h"
p = g_new0(struct a2dp_preset, 1);
p->len = conf_len;
- p->data = g_memdup(conf, p->len);
+ p->data = util_memdup(conf, p->len);
return p;
}
p = g_new0(struct a2dp_preset, 1);
p->len = conf_len;
- p->data = g_memdup(conf, p->len);
+ p->data = util_memdup(conf, p->len);
return p;
}
preset = g_new0(struct a2dp_preset, 1);
preset->len = cap->length - sizeof(*codec);
- preset->data = g_memdup(codec->data, preset->len);
+ preset->data = util_memdup(codec->data, preset->len);
if (check_config(endpoint, preset) < 0) {
preset_free(preset);
preset = g_new0(struct a2dp_preset, 1);
preset->len = p->len;
- preset->data = g_memdup(p->data, preset->len);
+ preset->data = util_memdup(p->data, preset->len);
l = g_slist_append(l, preset);
len -= preset->len;
diff --git a/android/avctp.c b/android/avctp.c
index 14ebbc3..37b4cec 100644
--- a/android/avctp.c
+++ b/android/avctp.c
#include <glib.h>
#include "lib/sdp.h"
+#include "src/shared/util.h"
#include "src/log.h"
#include "avctp.h"
for (i = 0; i < iov_cnt; i++) {
pdu[i].iov_len = iov[i].iov_len;
- pdu[i].iov_base = g_memdup(iov[i].iov_base, iov[i].iov_len);
+ pdu[i].iov_base = util_memdup(iov[i].iov_base, iov[i].iov_len);
}
req = g_new0(struct avctp_control_req, 1);
for (i = 0; i < iov_cnt; i++) {
pdu[i].iov_len = iov[i].iov_len;
- pdu[i].iov_base = g_memdup(iov[i].iov_base, iov[i].iov_len);
+ pdu[i].iov_base = util_memdup(iov[i].iov_base, iov[i].iov_len);
}
req = g_new0(struct avctp_browsing_req, 1);
diff --git a/android/avrcp-lib.c b/android/avrcp-lib.c
index 2007d09..b342692 100644
--- a/android/avrcp-lib.c
+++ b/android/avrcp-lib.c
return NULL;
}
- folders[count] = g_memdup(¶ms[i], len);
+ folders[count] = util_memdup(¶ms[i], len);
i += len;
}
diff --git a/android/gatt.c b/android/gatt.c
index a8a0c48..e8ba5aa 100644
--- a/android/gatt.c
+++ b/android/gatt.c
}
bt_uuid_to_uuid128(&uuid, &u128);
- new_uuid = g_memdup(&u128.value.u128, sizeof(u128.value.u128));
+ new_uuid = util_memdup(&u128.value.u128,
+ sizeof(u128.value.u128));
uuids = g_slist_prepend(uuids, new_uuid);
}
queue_push_tail(dev->pending_requests, data);
- data->value = g_memdup(value, vlen);
+ data->value = util_memdup(value, vlen);
data->length = vlen;
if (!gatt_db_attribute_write(attrib, offset, value, vlen, cmd[0],
diff --git a/android/hidhost.c b/android/hidhost.c
index 016382e..b4e5c52 100644
--- a/android/hidhost.c
+++ b/android/hidhost.c
goto fail;
dev->rd_size = data->unitSize;
- dev->rd_data = g_memdup(data->val.str, data->unitSize);
+ dev->rd_data = util_memdup(data->val.str,
+ data->unitSize);
}
}
diff --git a/android/tester-main.c b/android/tester-main.c
index ff5ecdf..317c1de 100644
--- a/android/tester-main.c
+++ b/android/tester-main.c
for (i = 0; i < num_properties; i++) {
props[i].type = properties[i].type;
props[i].len = properties[i].len;
- props[i].val = g_memdup(properties[i].val, properties[i].len);
+ props[i].val = util_memdup(properties[i].val,
+ properties[i].len);
}
return props;
for (i = 0; i < num_properties; i++) {
props[i].type = properties[i]->type;
props[i].len = properties[i]->len;
- props[i].val = g_memdup(properties[i]->val, properties[i]->len);
+ props[i].val = util_memdup(properties[i]->val,
+ properties[i]->len);
}
return props;
prop->type = type;
prop->len = len;
- prop->val = g_memdup(val, len);
+ prop->val = util_memdup(val, len);
return prop;
}
step->callback = CB_GATTC_SEARCH_RESULT;
step->callback_result.conn_id = conn_id;
- step->callback_result.service = g_memdup(srvc_id, sizeof(*srvc_id));
+ step->callback_result.service = util_memdup(srvc_id, sizeof(*srvc_id));
schedule_callback_verification(step);
}
step->callback = CB_GATTC_GET_CHARACTERISTIC;
step->callback_result.status = status;
step->callback_result.conn_id = conn_id;
- step->callback_result.service = g_memdup(srvc_id, sizeof(*srvc_id));
- step->callback_result.characteristic = g_memdup(char_id,
+ step->callback_result.service = util_memdup(srvc_id, sizeof(*srvc_id));
+ step->callback_result.characteristic = util_memdup(char_id,
sizeof(*char_id));
step->callback_result.char_prop = char_prop;
step->callback = CB_GATTC_GET_DESCRIPTOR;
step->callback_result.status = status;
step->callback_result.conn_id = conn_id;
- step->callback_result.service = g_memdup(srvc_id, sizeof(*srvc_id));
- step->callback_result.characteristic = g_memdup(char_id,
+ step->callback_result.service = util_memdup(srvc_id, sizeof(*srvc_id));
+ step->callback_result.characteristic = util_memdup(char_id,
sizeof(*char_id));
- step->callback_result.descriptor = g_memdup(descr_id,
+ step->callback_result.descriptor = util_memdup(descr_id,
sizeof(*descr_id));
schedule_callback_verification(step);
step->callback = CB_GATTC_GET_INCLUDED_SERVICE;
step->callback_result.status = status;
step->callback_result.conn_id = conn_id;
- step->callback_result.service = g_memdup(srvc_id, sizeof(*srvc_id));
- step->callback_result.included = g_memdup(incl_srvc_id,
+ step->callback_result.service = util_memdup(srvc_id, sizeof(*srvc_id));
+ step->callback_result.included = util_memdup(incl_srvc_id,
sizeof(*srvc_id));
schedule_callback_verification(step);
step->callback = CB_GATTC_READ_CHARACTERISTIC;
step->callback_result.status = status;
step->callback_result.conn_id = conn_id;
- step->callback_result.read_params = g_memdup(p_data, sizeof(*p_data));
+ step->callback_result.read_params = util_memdup(p_data,
+ sizeof(*p_data));
schedule_callback_verification(step);
}
step->callback = CB_GATTC_READ_DESCRIPTOR;
step->callback_result.status = status;
step->callback_result.conn_id = conn_id;
- step->callback_result.read_params = g_memdup(p_data, sizeof(*p_data));
+ step->callback_result.read_params = util_memdup(p_data,
+ sizeof(*p_data));
schedule_callback_verification(step);
}
step->callback = CB_GATTC_WRITE_CHARACTERISTIC;
step->callback_result.status = status;
step->callback_result.conn_id = conn_id;
- step->callback_result.write_params = g_memdup(p_data, sizeof(*p_data));
+ step->callback_result.write_params = util_memdup(p_data,
+ sizeof(*p_data));
schedule_callback_verification(step);
}
step->callback = CB_GATTC_WRITE_DESCRIPTOR;
step->callback_result.status = status;
step->callback_result.conn_id = conn_id;
- step->callback_result.write_params = g_memdup(p_data, sizeof(*p_data));
+ step->callback_result.write_params = util_memdup(p_data,
+ sizeof(*p_data));
schedule_callback_verification(step);
}
step->callback = CB_GATTC_REGISTER_FOR_NOTIFICATION;
step->callback_result.status = status;
step->callback_result.conn_id = conn_id;
- step->callback_result.service = g_memdup(srvc_id, sizeof(*srvc_id));
- step->callback_result.characteristic = g_memdup(char_id,
+ step->callback_result.service = util_memdup(srvc_id, sizeof(*srvc_id));
+ step->callback_result.characteristic = util_memdup(char_id,
sizeof(*char_id));
step->callback_result.notification_registered = registered;
step->callback = CB_GATTC_NOTIFY;
step->callback_result.conn_id = conn_id;
- step->callback_result.notify_params = g_memdup(p_data, sizeof(*p_data));
+ step->callback_result.notify_params = util_memdup(p_data,
+ sizeof(*p_data));
schedule_callback_verification(step);
}
step->callback_result.status = status;
step->callback_result.gatt_app_id = server_if;
- step->callback_result.service = g_memdup(srvc_id, sizeof(*srvc_id));
- step->callback_result.srvc_handle = g_memdup(&srvc_handle,
+ step->callback_result.service = util_memdup(srvc_id, sizeof(*srvc_id));
+ step->callback_result.srvc_handle = util_memdup(&srvc_handle,
sizeof(srvc_handle));
schedule_callback_verification(step);
step->callback_result.status = status;
step->callback_result.gatt_app_id = server_if;
- step->callback_result.srvc_handle = g_memdup(&srvc_handle,
+ step->callback_result.srvc_handle = util_memdup(&srvc_handle,
sizeof(srvc_handle));
- step->callback_result.inc_srvc_handle = g_memdup(&inc_srvc_handle,
+ step->callback_result.inc_srvc_handle = util_memdup(&inc_srvc_handle,
sizeof(inc_srvc_handle));
schedule_callback_verification(step);
step->callback_result.status = status;
step->callback_result.gatt_app_id = server_if;
- step->callback_result.srvc_handle = g_memdup(&srvc_handle,
+ step->callback_result.srvc_handle = util_memdup(&srvc_handle,
sizeof(srvc_handle));
- step->callback_result.uuid = g_memdup(uuid, sizeof(*uuid));
- step->callback_result.char_handle = g_memdup(&char_handle,
+ step->callback_result.uuid = util_memdup(uuid, sizeof(*uuid));
+ step->callback_result.char_handle = util_memdup(&char_handle,
sizeof(char_handle));
schedule_callback_verification(step);
step->callback_result.status = status;
step->callback_result.gatt_app_id = server_if;
- step->callback_result.srvc_handle = g_memdup(&srvc_handle,
+ step->callback_result.srvc_handle = util_memdup(&srvc_handle,
sizeof(srvc_handle));
- step->callback_result.uuid = g_memdup(uuid, sizeof(*uuid));
- step->callback_result.desc_handle = g_memdup(&desc_handle,
+ step->callback_result.uuid = util_memdup(uuid, sizeof(*uuid));
+ step->callback_result.desc_handle = util_memdup(&desc_handle,
sizeof(desc_handle));
schedule_callback_verification(step);
step->callback_result.status = status;
step->callback_result.gatt_app_id = server_if;
- step->callback_result.srvc_handle = g_memdup(&srvc_handle,
+ step->callback_result.srvc_handle = util_memdup(&srvc_handle,
sizeof(srvc_handle));
schedule_callback_verification(step);
step->callback_result.status = status;
step->callback_result.gatt_app_id = server_if;
- step->callback_result.srvc_handle = g_memdup(&srvc_handle,
+ step->callback_result.srvc_handle = util_memdup(&srvc_handle,
sizeof(srvc_handle));
schedule_callback_verification(step);
step->callback_result.status = status;
step->callback_result.gatt_app_id = server_if;
- step->callback_result.srvc_handle = g_memdup(&srvc_handle,
+ step->callback_result.srvc_handle = util_memdup(&srvc_handle,
sizeof(srvc_handle));
schedule_callback_verification(step);
step->callback_result.conn_id = conn_id;
step->callback_result.trans_id = trans_id;
- step->callback_result.attr_handle = g_memdup(&attr_handle,
+ step->callback_result.attr_handle = util_memdup(&attr_handle,
sizeof(attr_handle));
step->callback_result.offset = offset;
step->callback_result.is_long = is_long;
step->callback_result.conn_id = conn_id;
step->callback_result.trans_id = trans_id;
- step->callback_result.attr_handle = g_memdup(&attr_handle,
+ step->callback_result.attr_handle = util_memdup(&attr_handle,
sizeof(attr_handle));
step->callback_result.offset = offset;
step->callback_result.length = length;
step->callback_result.need_rsp = need_rsp;
step->callback_result.is_prep = is_prep;
- step->callback_result.value = g_memdup(&value, length);
+ step->callback_result.value = util_memdup(&value, length);
/* Utilize property verification mechanism for bdaddr */
props[0] = create_property(BT_PROPERTY_BDADDR, bda, sizeof(*bda));
inst[i].id = instances[i].id;
inst[i].scn = instances[i].scn;
inst[i].msg_types = instances[i].msg_types;
- inst[i].p_name = g_memdup(instances[i].p_name,
+ inst[i].p_name = util_memdup(instances[i].p_name,
strlen(instances[i].p_name));
}
diff --git a/attrib/gatt.c b/attrib/gatt.c
index 46b2ca3..b496dd1 100644
--- a/attrib/gatt.c
+++ b/attrib/gatt.c
g_slist_free_full(dc->characteristics, g_free);
g_attrib_unref(dc->attrib);
- g_free(dc->uuid);
+ free(dc->uuid);
g_free(dc);
}
g_slist_free_full(dd->descriptors, g_free);
g_attrib_unref(dd->attrib);
- g_free(dd->uuid);
+ free(dd->uuid);
g_free(dd);
}
dc->user_data = user_data;
dc->end = end;
dc->start = start;
- dc->uuid = g_memdup(uuid, sizeof(bt_uuid_t));
+ dc->uuid = util_memdup(uuid, sizeof(bt_uuid_t));
dc->id = g_attrib_send(attrib, 0, buf, plen, char_discovered_cb,
discover_char_ref(dc), discover_char_unref);
if (long_write->offset == long_write->vlen) {
execute_write(long_write->attrib, ATT_WRITE_ALL_PREP_WRITES,
long_write->func, long_write->user_data);
- g_free(long_write->value);
+ free(long_write->value);
g_free(long_write);
return;
long_write->func = func;
long_write->user_data = user_data;
long_write->handle = handle;
- long_write->value = g_memdup(value, vlen);
+ long_write->value = util_memdup(value, vlen);
long_write->vlen = vlen;
return prepare_write(long_write);
dd->user_data = user_data;
dd->start = start;
dd->end = end;
- dd->uuid = g_memdup(uuid, sizeof(bt_uuid_t));
+ dd->uuid = util_memdup(uuid, sizeof(bt_uuid_t));
dd->id = g_attrib_send(attrib, 0, buf, plen, desc_discovered_cb,
discover_desc_ref(dd), discover_desc_unref);
diff --git a/client/gatt.c b/client/gatt.c
index 11f70dc..13872c7 100644
--- a/client/gatt.c
+++ b/client/gatt.c
*val_len = i;
- return g_memdup(value, i);
+ return util_memdup(value, i);
}
void gatt_write_attribute(GDBusProxy *proxy, int argc, char *argv[])
diff --git a/gobex/gobex-header.c b/gobex/gobex-header.c
index 011d33d..002ba88 100644
--- a/gobex/gobex-header.c
+++ b/gobex/gobex-header.c
#include "gobex-header.h"
#include "gobex-debug.h"
+#include "src/shared/util.h"
/* Header types */
#define G_OBEX_HDR_ENC_UNICODE (0 << 6)
switch (data_policy) {
case G_OBEX_DATA_COPY:
- header->v.data = g_memdup(ptr, header->vlen);
+ header->v.data = util_memdup(ptr, header->vlen);
break;
case G_OBEX_DATA_REF:
header->extdata = TRUE;
break;
case G_OBEX_HDR_ENC_BYTES:
if (!header->extdata)
- g_free(header->v.data);
+ free(header->v.data);
break;
case G_OBEX_HDR_ENC_UINT8:
case G_OBEX_HDR_ENC_UINT32:
header->id = id;
header->vlen = len;
header->hlen = len + 3;
- header->v.data = g_memdup(data, len);
+ header->v.data = util_memdup(data, len);
return header;
}
diff --git a/gobex/gobex-packet.c b/gobex/gobex-packet.c
index 11937a5..8ae78b0 100644
--- a/gobex/gobex-packet.c
+++ b/gobex/gobex-packet.c
#include "gobex-defs.h"
#include "gobex-packet.h"
#include "gobex-debug.h"
+#include "src/shared/util.h"
#define FINAL_BIT 0x80
switch (data_policy) {
case G_OBEX_DATA_COPY:
- pkt->data.buf = g_memdup(data, len);
+ pkt->data.buf = util_memdup(data, len);
break;
case G_OBEX_DATA_REF:
pkt->data.buf_ref = data;
switch (pkt->data_policy) {
case G_OBEX_DATA_INHERIT:
case G_OBEX_DATA_COPY:
- g_free(pkt->data.buf);
+ free(pkt->data.buf);
break;
case G_OBEX_DATA_REF:
break;
diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index 9f992ec..3a68fd6 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
#include "mimetype.h"
#include "service.h"
#include "transport.h"
+#include "src/shared/util.h"
typedef struct {
uint8_t version;
os->path = NULL;
}
if (os->apparam) {
- g_free(os->apparam);
+ free(os->apparam);
os->apparam = NULL;
os->apparam_len = 0;
}
if (!g_obex_header_get_bytes(hdr, &apparam, &len))
return;
- os->apparam = g_memdup(apparam, len);
+ os->apparam = util_memdup(apparam, len);
os->apparam_len = len;
DBG("APPARAM");
}
diff --git a/plugins/neard.c b/plugins/neard.c
index e07b511..a755271 100644
--- a/plugins/neard.c
+++ b/plugins/neard.c
#include "src/eir.h"
#include "src/agent.h"
#include "src/btd.h"
+#include "src/shared/util.h"
#define NEARD_NAME "org.neard"
#define NEARD_PATH "/"
g_free(params->name);
g_free(params->hash);
g_free(params->randomizer);
- g_free(params->pin);
+ free(params->pin);
}
static DBusMessage *error_reply(DBusMessage *msg, int error)
remote->name = g_strndup((char *)n->name, n->name_len);
if (marker == 0x01) {
- remote->pin = g_memdup(n->authentication, 4);
+ remote->pin = util_memdup(n->authentication, 4);
remote->pin_len = 4;
} else if (marker == 0x02) {
- remote->pin = g_memdup(n->authentication, 16);
+ remote->pin = util_memdup(n->authentication, 16);
remote->pin_len = 16;
}
if (n->name_len > 0)
remote->name = g_strndup((char *)n->name, n->name_len);
- remote->pin = g_memdup(n->authentication, 4);
+ remote->pin = util_memdup(n->authentication, 4);
remote->pin_len = 4;
return 0;
diff --git a/plugins/policy.c b/plugins/policy.c
index 051db82..48f5db7 100644
--- a/plugins/policy.c
+++ b/plugins/policy.c
#include "src/profile.h"
#include "src/btd.h"
#include "src/shared/timeout.h"
+#include "src/shared/util.h"
#define CONTROL_CONNECT_TIMEOUT 2
#define SOURCE_RETRY_TIMEOUT 2
reconnect_attempts = default_attempts;
reconnect_intervals_len = sizeof(default_intervals) /
sizeof(*reconnect_intervals);
- reconnect_intervals = g_memdup(default_intervals,
+ reconnect_intervals = util_memdup(default_intervals,
sizeof(default_intervals));
goto done;
}
g_clear_error(&gerr);
reconnect_intervals_len = sizeof(default_intervals) /
sizeof(*reconnect_intervals);
- reconnect_intervals = g_memdup(default_intervals,
+ reconnect_intervals = util_memdup(default_intervals,
sizeof(default_intervals));
}
if (reconnect_uuids)
g_strfreev(reconnect_uuids);
- g_free(reconnect_intervals);
+ free(reconnect_intervals);
g_slist_free_full(reconnects, reconnect_destroy);
diff --git a/profiles/audio/avctp.c b/profiles/audio/avctp.c
index 64d1a85..6f64f16 100644
--- a/profiles/audio/avctp.c
+++ b/profiles/audio/avctp.c
#include "src/log.h"
#include "src/error.h"
#include "src/shared/timeout.h"
+#include "src/shared/util.h"
#include "avctp.h"
#include "avrcp.h"
NULL, 0, req->user_data);
done:
- g_free(req->operands);
+ free(req->operands);
g_free(req);
}
req->func(session, NULL, 0, req->user_data);
done:
- g_free(req->operands);
+ free(req->operands);
g_free(req);
}
req->subunit = subunit;
req->op = opcode;
req->func = func;
- req->operands = g_memdup(operands, operand_count);
+ req->operands = util_memdup(operands, operand_count);
req->operand_count = operand_count;
req->user_data = user_data;
req = g_new0(struct avctp_browsing_req, 1);
req->func = func;
- req->operands = g_memdup(operands, operand_count);
+ req->operands = util_memdup(operands, operand_count);
req->operand_count = operand_count;
req->user_data = user_data;
diff --git a/profiles/audio/avrcp.c b/profiles/audio/avrcp.c
index 7c28020..d4e19ff 100644
--- a/profiles/audio/avrcp.c
+++ b/profiles/audio/avrcp.c
* Save a copy of requested settings because we can override them
* while responding
*/
- settings = g_memdup(&pdu->params[1], pdu->params[0]);
+ settings = util_memdup(&pdu->params[1], pdu->params[0]);
len = 0;
/*
pdu->params[++len] = val;
}
- g_free(settings);
+ free(settings);
if (len) {
pdu->params[0] = len / 2;
break;
}
- folders[count] = g_memdup(&pdu->params[i], len);
+ folders[count] = util_memdup(&pdu->params[i], len);
i += len;
}
{
struct media_player *mp = player->user_data;
- player->features = g_memdup(features, 16);
+ player->features = util_memdup(features, 16);
if (features[7] & 0x08) {
media_player_set_browsable(mp, true);
g_slist_free(player->sessions);
g_free(player->path);
g_free(player->change_path);
- g_free(player->features);
+ free(player->features);
g_free(player);
}
diff --git a/profiles/battery/bas.c b/profiles/battery/bas.c
index 3c6173b..16ff22e 100644
--- a/profiles/battery/bas.c
+++ b/profiles/battery/bas.c
{
bt_bas_detach(bas);
- g_free(bas->primary);
+ free(bas->primary);
queue_destroy(bas->gatt_op, (void *) destroy_gatt_req);
free(bas);
}
bas->gatt_op = queue_new();
if (primary)
- bas->primary = g_memdup(primary, sizeof(*bas->primary));
+ bas->primary = util_memdup(primary, sizeof(*bas->primary));
return bt_bas_ref(bas);
}
diff --git a/profiles/battery/battery.c b/profiles/battery/battery.c
index 176d127..02d024d 100644
--- a/profiles/battery/battery.c
+++ b/profiles/battery/battery.c
gatt_db_unref(batt->db);
bt_gatt_client_unref(batt->client);
btd_device_unref(batt->device);
- g_free (batt->initial_value);
+ free(batt->initial_value);
if (batt->battery)
btd_battery_unregister(batt->battery);
g_free(batt);
if (!length)
return;
- batt->initial_value = g_memdup(value, length);
+ batt->initial_value = util_memdup(value, length);
/* request notify */
batt->batt_level_cb_id =
diff --git a/profiles/deviceinfo/dis.c b/profiles/deviceinfo/dis.c
index 87fa633..f660179 100644
--- a/profiles/deviceinfo/dis.c
+++ b/profiles/deviceinfo/dis.c
{
bt_dis_detach(dis);
- g_free(dis->primary);
+ free(dis->primary);
queue_destroy(dis->gatt_op, (void *) destroy_gatt_req);
g_free(dis);
}
dis->gatt_op = queue_new();
if (primary)
- dis->primary = g_memdup(primary, sizeof(*dis->primary));
+ dis->primary = util_memdup(primary, sizeof(*dis->primary));
return bt_dis_ref(dis);
}
diff --git a/profiles/input/hog-lib.c b/profiles/input/hog-lib.c
index 3bbe423..d37caa1 100644
--- a/profiles/input/hog-lib.c
+++ b/profiles/input/hog-lib.c
}
if (report->value)
- g_free(report->value);
+ free(report->value);
- report->value = g_memdup(pdu, len);
+ report->value = util_memdup(pdu, len);
report->len = len;
}
{
struct report *report = data;
- g_free(report->value);
+ free(report->value);
g_free(report);
}
bt_uhid_unref(hog->uhid);
g_slist_free_full(hog->reports, report_free);
g_free(hog->name);
- g_free(hog->primary);
+ free(hog->primary);
queue_destroy(hog->gatt_op, (void *) destroy_gatt_req);
if (hog->gatt_db)
gatt_db_unref(hog->gatt_db);
struct bt_hog *instance;
if (!hog->primary) {
- hog->primary = g_memdup(primary, sizeof(*primary));
+ hog->primary = util_memdup(primary, sizeof(*primary));
discover_char(hog, hog->attrib, primary->range.start,
primary->range.end, NULL,
char_discovered_cb, hog);
if (!instance)
return;
- instance->primary = g_memdup(primary, sizeof(*primary));
+ instance->primary = util_memdup(primary, sizeof(*primary));
find_included(instance, hog->attrib, primary->range.start,
primary->range.end, find_included_cb, instance);
diff --git a/profiles/scanparam/scpp.c b/profiles/scanparam/scpp.c
index da38a6a..4be8b26 100644
--- a/profiles/scanparam/scpp.c
+++ b/profiles/scanparam/scpp.c
{
bt_scpp_detach(scan);
- g_free(scan->primary);
+ free(scan->primary);
queue_destroy(scan->gatt_op, NULL); /* cleared in bt_scpp_detach */
g_free(scan);
}
scan->gatt_op = queue_new();
if (primary)
- scan->primary = g_memdup(primary, sizeof(*scan->primary));
+ scan->primary = util_memdup(primary, sizeof(*scan->primary));
return bt_scpp_ref(scan);
}
diff --git a/src/eir.c b/src/eir.c
index 0f5d14f..2f9ee03 100644
--- a/src/eir.c
+++ b/src/eir.c
eir->services = NULL;
g_free(eir->name);
eir->name = NULL;
- g_free(eir->hash);
+ free(eir->hash);
eir->hash = NULL;
- g_free(eir->randomizer);
+ free(eir->randomizer);
eir->randomizer = NULL;
g_slist_free_full(eir->msd_list, g_free);
eir->msd_list = NULL;
case EIR_SSP_HASH:
if (data_len < 16)
break;
- eir->hash = g_memdup(data, 16);
+ eir->hash = util_memdup(data, 16);
break;
case EIR_SSP_RANDOMIZER:
if (data_len < 16)
break;
- eir->randomizer = g_memdup(data, 16);
+ eir->randomizer = util_memdup(data, 16);
break;
case EIR_DEVICE_ID:
diff --git a/tools/gatt-service.c b/tools/gatt-service.c
index 631c4f2..ed6b06f 100644
--- a/tools/gatt-service.c
+++ b/tools/gatt-service.c
#include "gdbus/gdbus.h"
#include "src/error.h"
+#include "src/shared/util.h"
#define GATT_MGR_IFACE "org.bluez.GattManager1"
#define GATT_SERVICE_IFACE "org.bluez.GattService1"
static void desc_write(struct descriptor *desc, const uint8_t *value, int len)
{
- g_free(desc->value);
- desc->value = g_memdup(value, len);
+ free(desc->value);
+ desc->value = util_memdup(value, len);
desc->vlen = len;
g_dbus_emit_property_changed(connection, desc->path,
static void chr_write(struct characteristic *chr, const uint8_t *value, int len)
{
- g_free(chr->value);
- chr->value = g_memdup(value, len);
+ free(chr->value);
+ chr->value = util_memdup(value, len);
chr->vlen = len;
g_dbus_emit_property_changed(connection, chr->path, GATT_CHR_IFACE,
g_free(chr->uuid);
g_free(chr->service);
- g_free(chr->value);
+ free(chr->value);
g_free(chr->path);
g_free(chr);
}
struct descriptor *desc = user_data;
g_free(desc->uuid);
- g_free(desc->value);
+ free(desc->value);
g_free(desc->path);
g_free(desc);
}
chr = g_new0(struct characteristic, 1);
chr->uuid = g_strdup(chr_uuid);
- chr->value = g_memdup(value, vlen);
+ chr->value = util_memdup(value, vlen);
chr->vlen = vlen;
chr->props = props;
chr->service = g_strdup(service_path);
diff --git a/tools/mesh-gatt/gatt.c b/tools/mesh-gatt/gatt.c
index c8a8123..ab9743c 100644
--- a/tools/mesh-gatt/gatt.c
+++ b/tools/mesh-gatt/gatt.c
#include "src/shared/io.h"
#include "src/shared/shell.h"
+#include "src/shared/util.h"
#include "gdbus/gdbus.h"
#include "lib/bluetooth.h"
#include "lib/uuid.h"
{
struct write_data *data = user_data;
- g_free(data->gatt_data);
+ free(data->gatt_data);
free(data);
}
/* TODO: should keep in queue in case we need to cancel write? */
data->gatt_len = len;
- data->gatt_data = g_memdup(buf, len);
+ data->gatt_data = util_memdup(buf, len);
data->gatt_data[0] &= GATT_TYPE_MASK;
data->iov.iov_base = data->gatt_data;
data->iov.iov_len = len;
diff --git a/unit/test-avctp.c b/unit/test-avctp.c
index fa7db59..25fd3ab 100644
--- a/unit/test-avctp.c
+++ b/unit/test-avctp.c
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
}; \
static struct test_data data; \
data.test_name = g_strdup(name); \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
+ data.pdu_list = util_memdup(pdus, sizeof(pdus)); \
tester_add(name, &data, NULL, function, NULL); \
} while (0)
diff --git a/unit/test-avdtp.c b/unit/test-avdtp.c
index 4e8a68c..2e49def 100644
--- a/unit/test-avdtp.c
+++ b/unit/test-avdtp.c
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
{ \
.valid = true, \
.fragmented = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
}; \
static struct test_data data; \
data.test_name = g_strdup(name); \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
+ data.pdu_list = util_memdup(pdus, sizeof(pdus)); \
tester_add(name, &data, NULL, function, NULL); \
} while (0)
diff --git a/unit/test-avrcp.c b/unit/test-avrcp.c
index 34a7037..b637a8a 100644
--- a/unit/test-avrcp.c
+++ b/unit/test-avrcp.c
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
{ \
.valid = true, \
.browse = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
{ \
.valid = true, \
.fragmented = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
{ \
.valid = true, \
.continuing = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
}; \
static struct test_data data; \
data.test_name = g_strdup(name); \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
+ data.pdu_list = util_memdup(pdus, sizeof(pdus)); \
tester_add(name, &data, NULL, function, NULL); \
} while (0)
diff --git a/unit/test-gatt.c b/unit/test-gatt.c
index 6a47268..f92d860 100644
--- a/unit/test-gatt.c
+++ b/unit/test-gatt.c
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
data.uuid = bt_uuid; \
data.step = test_step; \
data.source_db = db; \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
+ data.pdu_list = util_memdup(pdus, sizeof(pdus)); \
tester_add(name, &data, NULL, function, NULL); \
} while (0)
diff --git a/unit/test-hfp.c b/unit/test-hfp.c
index f504724..b4af99d 100644
--- a/unit/test-hfp.c
+++ b/unit/test-hfp.c
#include <glib.h>
#include "src/shared/hfp.h"
#include "src/shared/tester.h"
+#include "src/shared/util.h"
struct context {
guint watch_id;
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
#define type_pdu(cmd_type, args...) \
{ \
.valid = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
.type = cmd_type, \
}
#define frg_pdu(args...) \
{ \
.valid = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
.fragmented = true, \
}
}; \
static struct test_data data; \
data.test_name = g_strdup(name); \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
+ data.pdu_list = util_memdup(pdus, sizeof(pdus)); \
data.result_func = result_function; \
tester_add(name, &data, NULL, function, NULL); \
data.test_handler = test_handler; \
}; \
static struct test_data data; \
data.test_name = g_strdup(name); \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
+ data.pdu_list = util_memdup(pdus, sizeof(pdus)); \
data.hf_result_func = result_func; \
data.response_func = response_function; \
tester_add(name, &data, NULL, function, NULL); \
diff --git a/unit/test-hog.c b/unit/test-hog.c
index 116a5cb..067497d 100644
--- a/unit/test-hog.c
+++ b/unit/test-hog.c
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = g_memdup(data(args), sizeof(data(args))), \
+ .data = util_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
-#define false_pdu() \
-{ \
- .valid = false, \
+#define false_pdu() \
+{ \
+ .valid = false, \
}
-#define define_test(name, function, args...) \
- do { \
- const struct test_pdu pdus[] = { \
- args, { } \
- }; \
- static struct test_data data; \
- data.test_name = g_strdup(name); \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
- tester_add(name, &data, NULL, function, NULL); \
+#define define_test(name, function, args...) \
+ do { \
+ const struct test_pdu pdus[] = { \
+ args, { } \
+ }; \
+ static struct test_data data; \
+ data.test_name = g_strdup(name); \
+ data.pdu_list = util_memdup(pdus, sizeof(pdus));\
+ tester_add(name, &data, NULL, function, NULL); \
} while (0)
static gboolean context_quit(gpointer user_data)
diff --git a/unit/test-sdp.c b/unit/test-sdp.c
index 8f95fcb..5c04a71 100644
--- a/unit/test-sdp.c
+++ b/unit/test-sdp.c
#define raw_pdu(args...) \
{ \
.valid = true, \
- .raw_data = g_memdup(raw_data(args), sizeof(raw_data(args))), \
+ .raw_data = util_memdup(raw_data(args), \
+ sizeof(raw_data(args))), \
.raw_size = sizeof(raw_data(args)), \
}
#define raw_pdu_cont(cont, args...) \
{ \
.valid = true, \
- .raw_data = g_memdup(raw_data(args), sizeof(raw_data(args))), \
+ .raw_data = util_memdup(raw_data(args), \
+ sizeof(raw_data(args))), \
.raw_size = sizeof(raw_data(args)), \
.cont_len = cont, \
}
}; \
static struct test_data data; \
data.mtu = _mtu; \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
+ data.pdu_list = util_memdup(pdus, sizeof(pdus)); \
tester_add(name, &data, NULL, test_sdp, NULL); \
} while (0)
#define define_test_de_attr(name, input, exp) \
do { \
static struct test_data_de data; \
- data.input_data = g_memdup(input, sizeof(input)); \
+ data.input_data = util_memdup(input, sizeof(input)); \
data.input_size = sizeof(input); \
data.expected = exp; \
tester_add("/sdp/DE/ATTR/" name, &data, NULL, \
diff --git a/unit/test-uhid.c b/unit/test-uhid.c
index 001d39a..8a8eef8 100644
--- a/unit/test-uhid.c
+++ b/unit/test-uhid.c
}; \
static struct test_data data; \
data.test_name = g_strdup(name); \
- data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
+ data.pdu_list = util_memdup(pdus, sizeof(pdus)); \
tester_add(name, &data, NULL, function, NULL); \
} while (0)