All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH BlueZ] lib: Replace malloc/memset(..0..) with malloc0
@ 2020-09-28 19:20 Aravind Machiry
  2020-09-28 19:30 ` [BlueZ] " bluez.test.bot
  0 siblings, 1 reply; 6+ messages in thread
From: Aravind Machiry @ 2020-09-28 19:20 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: mhnaik, liby99, Aravind Machiry

This patch replaces various instances of malloc and subsequent
memset(..,0,..) with malloc0 (i.e., calloc) for efficiency.
---
 lib/bluetooth.c |  5 +++++
 lib/bluetooth.h |  3 +++
 lib/sdp.c       | 36 ++++++++++++------------------------
 3 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/lib/bluetooth.c b/lib/bluetooth.c
index 0aecb50e1..84e40c819 100644
--- a/lib/bluetooth.c
+++ b/lib/bluetooth.c
@@ -173,6 +173,11 @@ void *bt_malloc(size_t size)
 	return malloc(size);
 }
 
+void *bt_malloc0(size_t size)
+{
+	return calloc(size, 1);
+}
+
 void bt_free(void *ptr)
 {
 	free(ptr);
diff --git a/lib/bluetooth.h b/lib/bluetooth.h
index 1619f5f08..6994c037a 100644
--- a/lib/bluetooth.h
+++ b/lib/bluetooth.h
@@ -149,6 +149,8 @@ enum {
 	BT_CLOSED
 };
 
+#define malloc0(n) (calloc((n), 1))
+
 /* Byte order conversions */
 #if __BYTE_ORDER == __LITTLE_ENDIAN
 #define htobs(d)  (d)
@@ -349,6 +351,7 @@ int basprintf(char *str, const char *format, ...);
 int basnprintf(char *str, size_t size, const char *format, ...);
 
 void *bt_malloc(size_t size);
+void *bt_malloc0(size_t size);
 void bt_free(void *ptr);
 
 int bt_error(uint16_t code);
diff --git a/lib/sdp.c b/lib/sdp.c
index a27cd3a7b..98624dcfc 100644
--- a/lib/sdp.c
+++ b/lib/sdp.c
@@ -345,12 +345,11 @@ sdp_data_t *sdp_data_alloc_with_length(uint8_t dtd, const void *value,
 							uint32_t length)
 {
 	sdp_data_t *seq;
-	sdp_data_t *d = malloc(sizeof(sdp_data_t));
+	sdp_data_t *d = malloc0(sizeof(sdp_data_t));
 
 	if (!d)
 		return NULL;
 
-	memset(d, 0, sizeof(sdp_data_t));
 	d->dtd = dtd;
 	d->unitSize = sizeof(uint8_t);
 
@@ -906,11 +905,10 @@ int sdp_gen_record_pdu(const sdp_record_t *rec, sdp_buf_t *buf)
 	memset(buf, 0, sizeof(sdp_buf_t));
 	sdp_list_foreach(rec->attrlist, sdp_attr_size, buf);
 
-	buf->data = malloc(buf->buf_size);
+	buf->data = malloc0(buf->buf_size);
 	if (!buf->data)
 		return -ENOMEM;
 	buf->data_size = 0;
-	memset(buf->data, 0, buf->buf_size);
 
 	sdp_list_foreach(rec->attrlist, sdp_attr_pdu, buf);
 
@@ -1030,12 +1028,11 @@ static sdp_data_t *extract_int(const void *p, int bufsize, int *len)
 		return NULL;
 	}
 
-	d = malloc(sizeof(sdp_data_t));
+	d = malloc0(sizeof(sdp_data_t));
 	if (!d)
 		return NULL;
 
 	SDPDBG("Extracting integer");
-	memset(d, 0, sizeof(sdp_data_t));
 	d->dtd = *(uint8_t *) p;
 	p += sizeof(uint8_t);
 	*len += sizeof(uint8_t);
@@ -1105,13 +1102,12 @@ static sdp_data_t *extract_int(const void *p, int bufsize, int *len)
 static sdp_data_t *extract_uuid(const uint8_t *p, int bufsize, int *len,
 							sdp_record_t *rec)
 {
-	sdp_data_t *d = malloc(sizeof(sdp_data_t));
+	sdp_data_t *d = malloc0(sizeof(sdp_data_t));
 
 	if (!d)
 		return NULL;
 
 	SDPDBG("Extracting UUID");
-	memset(d, 0, sizeof(sdp_data_t));
 	if (sdp_uuid_extract(p, bufsize, &d->val.uuid, len) < 0) {
 		free(d);
 		return NULL;
@@ -1136,11 +1132,10 @@ static sdp_data_t *extract_str(const void *p, int bufsize, int *len)
 		return NULL;
 	}
 
-	d = malloc(sizeof(sdp_data_t));
+	d = malloc0(sizeof(sdp_data_t));
 	if (!d)
 		return NULL;
 
-	memset(d, 0, sizeof(sdp_data_t));
 	d->dtd = *(uint8_t *) p;
 	p += sizeof(uint8_t);
 	*len += sizeof(uint8_t);
@@ -1183,13 +1178,12 @@ static sdp_data_t *extract_str(const void *p, int bufsize, int *len)
 		return NULL;
 	}
 
-	s = malloc(n + 1);
+	s = malloc0(n + 1);
 	if (!s) {
 		SDPERR("Not enough memory for incoming string");
 		free(d);
 		return NULL;
 	}
-	memset(s, 0, n + 1);
 	memcpy(s, p, n);
 
 	*len += n;
@@ -1260,13 +1254,12 @@ static sdp_data_t *extract_seq(const void *p, int bufsize, int *len,
 {
 	int seqlen, n = 0;
 	sdp_data_t *curr, *prev;
-	sdp_data_t *d = malloc(sizeof(sdp_data_t));
+	sdp_data_t *d = malloc0(sizeof(sdp_data_t));
 
 	if (!d)
 		return NULL;
 
 	SDPDBG("Extracting SEQ");
-	memset(d, 0, sizeof(sdp_data_t));
 	*len = sdp_extract_seqtype(p, bufsize, &d->dtd, &seqlen);
 	SDPDBG("Sequence Type : 0x%x length : 0x%x", d->dtd, seqlen);
 
@@ -2740,12 +2733,11 @@ void sdp_uuid32_to_uuid128(uuid_t *uuid128, const uuid_t *uuid32)
 
 uuid_t *sdp_uuid_to_uuid128(const uuid_t *uuid)
 {
-	uuid_t *uuid128 = bt_malloc(sizeof(uuid_t));
+	uuid_t *uuid128 = bt_malloc0(sizeof(uuid_t));
 
 	if (!uuid128)
 		return NULL;
 
-	memset(uuid128, 0, sizeof(uuid_t));
 	switch (uuid->type) {
 	case SDP_UUID128:
 		*uuid128 = *uuid;
@@ -3191,12 +3183,11 @@ int sdp_record_update(sdp_session_t *session, const sdp_record_t *rec)
 
 sdp_record_t *sdp_record_alloc(void)
 {
-	sdp_record_t *rec = malloc(sizeof(sdp_record_t));
+	sdp_record_t *rec = malloc0(sizeof(sdp_record_t));
 
 	if (!rec)
 		return NULL;
 
-	memset(rec, 0, sizeof(sdp_record_t));
 	rec->handle = 0xffffffff;
 	return rec;
 }
@@ -3731,23 +3722,21 @@ sdp_session_t *sdp_create(int sk, uint32_t flags)
 	sdp_session_t *session;
 	struct sdp_transaction *t;
 
-	session = malloc(sizeof(sdp_session_t));
+	session = malloc0(sizeof(sdp_session_t));
 	if (!session) {
 		errno = ENOMEM;
 		return NULL;
 	}
-	memset(session, 0, sizeof(*session));
 
 	session->flags = flags;
 	session->sock = sk;
 
-	t = malloc(sizeof(struct sdp_transaction));
+	t = malloc0(sizeof(struct sdp_transaction));
 	if (!t) {
 		errno = ENOMEM;
 		free(session);
 		return NULL;
 	}
-	memset(t, 0, sizeof(*t));
 
 	session->priv = t;
 
@@ -4173,13 +4162,12 @@ int sdp_process(sdp_session_t *session)
 		return -1;
 	}
 
-	rspbuf = malloc(SDP_RSP_BUFFER_SIZE);
+	rspbuf = malloc0(SDP_RSP_BUFFER_SIZE);
 	if (!rspbuf) {
 		SDPERR("Response buffer alloc failure:%m (%d)", errno);
 		return -1;
 	}
 
-	memset(rspbuf, 0, SDP_RSP_BUFFER_SIZE);
 
 	t = session->priv;
 	reqhdr = (sdp_pdu_hdr_t *)t->reqbuf;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* RE: [BlueZ] lib: Replace malloc/memset(..0..) with malloc0
  2020-09-28 19:20 [PATCH BlueZ] lib: Replace malloc/memset(..0..) with malloc0 Aravind Machiry
@ 2020-09-28 19:30 ` bluez.test.bot
  2020-10-03 18:11   ` Aravind Machiry
  0 siblings, 1 reply; 6+ messages in thread
From: bluez.test.bot @ 2020-09-28 19:30 UTC (permalink / raw)
  To: linux-bluetooth, machiry

[-- Attachment #1: Type: text/plain, Size: 557 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=356715

---Test result---

##############################
Test: CheckPatch - PASS

##############################
Test: CheckGitLint - PASS

##############################
Test: CheckBuild - PASS

##############################
Test: MakeCheck - PASS



---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [BlueZ] lib: Replace malloc/memset(..0..) with malloc0
  2020-09-28 19:30 ` [BlueZ] " bluez.test.bot
@ 2020-10-03 18:11   ` Aravind Machiry
  2020-10-03 21:49     ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 6+ messages in thread
From: Aravind Machiry @ 2020-10-03 18:11 UTC (permalink / raw)
  To: linux-bluetooth

Gentle reminder!

On Mon, Sep 28, 2020 at 12:30 PM <bluez.test.bot@gmail.com> wrote:
>
> This is automated email and please do not reply to this email!
>
> Dear submitter,
>
> Thank you for submitting the patches to the linux bluetooth mailing list.
> This is a CI test results with your patch series:
> PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=356715
>
> ---Test result---
>
> ##############################
> Test: CheckPatch - PASS
>
> ##############################
> Test: CheckGitLint - PASS
>
> ##############################
> Test: CheckBuild - PASS
>
> ##############################
> Test: MakeCheck - PASS
>
>
>
> ---
> Regards,
> Linux Bluetooth
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [BlueZ] lib: Replace malloc/memset(..0..) with malloc0
  2020-10-03 18:11   ` Aravind Machiry
@ 2020-10-03 21:49     ` Luiz Augusto von Dentz
  2020-10-04  0:36       ` Aravind Machiry
  0 siblings, 1 reply; 6+ messages in thread
From: Luiz Augusto von Dentz @ 2020-10-03 21:49 UTC (permalink / raw)
  To: Aravind Machiry; +Cc: linux-bluetooth

Hi Aravind,

On Sat, Oct 3, 2020 at 11:14 AM Aravind Machiry <machiry@cs.ucsb.edu> wrote:
>
> Gentle reminder!
>
> On Mon, Sep 28, 2020 at 12:30 PM <bluez.test.bot@gmail.com> wrote:
> >
> > This is automated email and please do not reply to this email!
> >
> > Dear submitter,
> >
> > Thank you for submitting the patches to the linux bluetooth mailing list.
> > This is a CI test results with your patch series:
> > PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=356715
> >
> > ---Test result---
> >
> > ##############################
> > Test: CheckPatch - PASS
> >
> > ##############################
> > Test: CheckGitLint - PASS
> >
> > ##############################
> > Test: CheckBuild - PASS
> >
> > ##############################
> > Test: MakeCheck - PASS
> >
> >
> >
> > ---
> > Regards,
> > Linux Bluetooth

There seems to be a mixture of malloc0 or bt_malloc0 when I guess the
later should be preferred.



-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [BlueZ] lib: Replace malloc/memset(..0..) with malloc0
  2020-10-03 21:49     ` Luiz Augusto von Dentz
@ 2020-10-04  0:36       ` Aravind Machiry
  2020-10-08  0:01         ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 6+ messages in thread
From: Aravind Machiry @ 2020-10-04  0:36 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: linux-bluetooth

Hi Luiz,

Yes. Although bt_malloc internally uses malloc, there are a couple of
places where bt_malloc is used instead of malloc.

I was sticking to the convention of replacing malloc with malloc0 and
bt_malloc with btmalloc0. I am not sure about any underlying reason
for using malloc vs bt_malloc.

If you think that bt_malloc/bt_malloc0 is the right way to go? I can
go ahead and replace all occurrences of malloc/malloc0 with
bt_malloc/bt_malloc0 respectively.

Please do let me know.

Btw, all the tests seem to pass when I did the replacement.

-Best,
Aravind




On Sat, Oct 3, 2020 at 2:49 PM Luiz Augusto von Dentz
<luiz.dentz@gmail.com> wrote:
>
> Hi Aravind,
>
> On Sat, Oct 3, 2020 at 11:14 AM Aravind Machiry <machiry@cs.ucsb.edu> wrote:
> >
> > Gentle reminder!
> >
> > On Mon, Sep 28, 2020 at 12:30 PM <bluez.test.bot@gmail.com> wrote:
> > >
> > > This is automated email and please do not reply to this email!
> > >
> > > Dear submitter,
> > >
> > > Thank you for submitting the patches to the linux bluetooth mailing list.
> > > This is a CI test results with your patch series:
> > > PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=356715
> > >
> > > ---Test result---
> > >
> > > ##############################
> > > Test: CheckPatch - PASS
> > >
> > > ##############################
> > > Test: CheckGitLint - PASS
> > >
> > > ##############################
> > > Test: CheckBuild - PASS
> > >
> > > ##############################
> > > Test: MakeCheck - PASS
> > >
> > >
> > >
> > > ---
> > > Regards,
> > > Linux Bluetooth
>
> There seems to be a mixture of malloc0 or bt_malloc0 when I guess the
> later should be preferred.
>
>
>
> --
> Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [BlueZ] lib: Replace malloc/memset(..0..) with malloc0
  2020-10-04  0:36       ` Aravind Machiry
@ 2020-10-08  0:01         ` Luiz Augusto von Dentz
  0 siblings, 0 replies; 6+ messages in thread
From: Luiz Augusto von Dentz @ 2020-10-08  0:01 UTC (permalink / raw)
  To: Aravind Machiry; +Cc: linux-bluetooth

Hi Aravind,

On Sat, Oct 3, 2020 at 5:36 PM Aravind Machiry <machiry@cs.ucsb.edu> wrote:
>
> Hi Luiz,
>
> Yes. Although bt_malloc internally uses malloc, there are a couple of
> places where bt_malloc is used instead of malloc.
>
> I was sticking to the convention of replacing malloc with malloc0 and
> bt_malloc with btmalloc0. I am not sure about any underlying reason
> for using malloc vs bt_malloc.
>
> If you think that bt_malloc/bt_malloc0 is the right way to go? I can
> go ahead and replace all occurrences of malloc/malloc0 with
> bt_malloc/bt_malloc0 respectively.
>
> Please do let me know.
>
> Btw, all the tests seem to pass when I did the replacement.

Applied, thanks, note that I did replace the instances of malloc0 with
bt_malloc0.

> -Best,
> Aravind
>
>
>
>
> On Sat, Oct 3, 2020 at 2:49 PM Luiz Augusto von Dentz
> <luiz.dentz@gmail.com> wrote:
> >
> > Hi Aravind,
> >
> > On Sat, Oct 3, 2020 at 11:14 AM Aravind Machiry <machiry@cs.ucsb.edu> wrote:
> > >
> > > Gentle reminder!
> > >
> > > On Mon, Sep 28, 2020 at 12:30 PM <bluez.test.bot@gmail.com> wrote:
> > > >
> > > > This is automated email and please do not reply to this email!
> > > >
> > > > Dear submitter,
> > > >
> > > > Thank you for submitting the patches to the linux bluetooth mailing list.
> > > > This is a CI test results with your patch series:
> > > > PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=356715
> > > >
> > > > ---Test result---
> > > >
> > > > ##############################
> > > > Test: CheckPatch - PASS
> > > >
> > > > ##############################
> > > > Test: CheckGitLint - PASS
> > > >
> > > > ##############################
> > > > Test: CheckBuild - PASS
> > > >
> > > > ##############################
> > > > Test: MakeCheck - PASS
> > > >
> > > >
> > > >
> > > > ---
> > > > Regards,
> > > > Linux Bluetooth
> >
> > There seems to be a mixture of malloc0 or bt_malloc0 when I guess the
> > later should be preferred.
> >
> >
> >
> > --
> > Luiz Augusto von Dentz



-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-10-08  0:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-28 19:20 [PATCH BlueZ] lib: Replace malloc/memset(..0..) with malloc0 Aravind Machiry
2020-09-28 19:30 ` [BlueZ] " bluez.test.bot
2020-10-03 18:11   ` Aravind Machiry
2020-10-03 21:49     ` Luiz Augusto von Dentz
2020-10-04  0:36       ` Aravind Machiry
2020-10-08  0:01         ` Luiz Augusto von Dentz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.