Hi Andrei, > Dynamic memory stored in company allocated through function > hwdb_get_company shall be freed. > --- > monitor/packet.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/monitor/packet.c b/monitor/packet.c > index c991d04..b271cae 100644 > --- a/monitor/packet.c > +++ b/monitor/packet.c > @@ -408,18 +408,20 @@ static void print_addr(const char *label, const uint8_t *addr, > if (!hwdb_get_company(addr, &company)) > company = NULL; > > - if (company) > + if (company) { > print_field("%s: %2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X" > " (%s)", label, addr[5], addr[4], > addr[3], addr[2], > addr[1], addr[0], > company); > - else > + free(company); good catch. I totally forgot about the fact that the memory is allocated. > + } else { > print_field("%s: %2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X" > " (OUI %2.2X-%2.2X-%2.2X)", label, > addr[5], addr[4], addr[3], > addr[2], addr[1], addr[0], > addr[5], addr[4], addr[3]); > + } > break; In userspace we do not require the else statement to be enclose by { } if the if part is as well. We usually don’t. Regards Marcel -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html