mirror of git://git.sysmocom.de/ofono
drivers: update to use l_free
Previous commit changes character conversion functions to use ell memory allocation routines. Update all uses to free memory using the same.
This commit is contained in:
parent
9396120cf9
commit
a65bf69f38
|
@ -34,6 +34,7 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
#include <ell/ell.h>
|
||||||
|
|
||||||
#include <ofono.h>
|
#include <ofono.h>
|
||||||
#include <ofono/log.h>
|
#include <ofono/log.h>
|
||||||
|
@ -180,29 +181,22 @@ static struct phonebook_entry *handle_adn(size_t len, const unsigned char *msg,
|
||||||
if (number_length != UNUSED && number_length != 0) {
|
if (number_length != UNUSED && number_length != 0) {
|
||||||
number_length--;
|
number_length--;
|
||||||
/* '+' + number + terminator */
|
/* '+' + number + terminator */
|
||||||
number = g_try_malloc0(2 * number_length + 2);
|
number = g_new(char, 2 * number_length + 2);
|
||||||
|
prefix = 0;
|
||||||
|
|
||||||
if (number) {
|
if ((msg[number_start + 1] & TON_MASK) == TON_INTERNATIONAL) {
|
||||||
prefix = 0;
|
number[0] = '+';
|
||||||
|
prefix = 1;
|
||||||
if ((msg[number_start + 1] & TON_MASK)
|
|
||||||
== TON_INTERNATIONAL) {
|
|
||||||
number[0] = '+';
|
|
||||||
prefix = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < number_length; i++) {
|
|
||||||
|
|
||||||
number[2 * i + prefix] =
|
|
||||||
digit_to_utf8[msg[number_start + 2 + i]
|
|
||||||
& 0x0f];
|
|
||||||
number[2 * i + 1 + prefix] =
|
|
||||||
digit_to_utf8[msg[number_start + 2 + i]
|
|
||||||
>> 4];
|
|
||||||
}
|
|
||||||
|
|
||||||
extension_record = msg[len - 1];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < number_length; i++) {
|
||||||
|
number[2 * i + prefix] =
|
||||||
|
digit_to_utf8[msg[number_start + 2 + i] & 0x0f];
|
||||||
|
number[2 * i + 1 + prefix] =
|
||||||
|
digit_to_utf8[msg[number_start + 2 + i] >> 4];
|
||||||
|
}
|
||||||
|
|
||||||
|
extension_record = msg[len - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG("ADN name %s, number %s ", name, number);
|
DBG("ADN name %s, number %s ", name, number);
|
||||||
|
@ -212,12 +206,7 @@ static struct phonebook_entry *handle_adn(size_t len, const unsigned char *msg,
|
||||||
if ((name == NULL || *name == '\0') && number == NULL)
|
if ((name == NULL || *name == '\0') && number == NULL)
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
new_entry = g_try_malloc0(sizeof(*new_entry));
|
new_entry = l_new(struct phonebook_entry, 1);
|
||||||
if (new_entry == NULL) {
|
|
||||||
ofono_error("%s: out of memory", __func__);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
new_entry->name = name;
|
new_entry->name = name;
|
||||||
new_entry->number = number;
|
new_entry->number = number;
|
||||||
|
|
||||||
|
@ -246,8 +235,8 @@ static struct phonebook_entry *handle_adn(size_t len, const unsigned char *msg,
|
||||||
return new_entry;
|
return new_entry;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
g_free(name);
|
l_free(name);
|
||||||
g_free(number);
|
l_free(number);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -314,17 +303,17 @@ static void handle_sne(size_t len, const unsigned char *msg,
|
||||||
if (entry) {
|
if (entry) {
|
||||||
/* If one already exists, delete it */
|
/* If one already exists, delete it */
|
||||||
if (entry->sne)
|
if (entry->sne)
|
||||||
g_free(entry->sne);
|
l_free(entry->sne);
|
||||||
|
|
||||||
DBG("Adding SNE %s to %d", sne, rec_data->adn_idx);
|
DBG("Adding SNE %s to %d", sne, rec_data->adn_idx);
|
||||||
DBG("name %s", entry->name);
|
DBG("name %s", entry->name);
|
||||||
|
|
||||||
entry->sne = sne;
|
entry->sne = sne;
|
||||||
} else {
|
} else {
|
||||||
g_free(sne);
|
l_free(sne);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
g_free(sne);
|
l_free(sne);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -358,9 +347,7 @@ static void handle_anr(size_t len,
|
||||||
|
|
||||||
number_length--;
|
number_length--;
|
||||||
/* '+' + number + terminator */
|
/* '+' + number + terminator */
|
||||||
anr = g_try_malloc0(2 * number_length + 2);
|
anr = l_new(char, 2 * number_length + 2);
|
||||||
if (anr == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
prefix = 0;
|
prefix = 0;
|
||||||
if ((msg[2] & TON_MASK) == TON_INTERNATIONAL) {
|
if ((msg[2] & TON_MASK) == TON_INTERNATIONAL) {
|
||||||
|
@ -376,13 +363,13 @@ static void handle_anr(size_t len,
|
||||||
entry = g_tree_lookup(ref->phonebook,
|
entry = g_tree_lookup(ref->phonebook,
|
||||||
GINT_TO_POINTER(rec_data->adn_idx));
|
GINT_TO_POINTER(rec_data->adn_idx));
|
||||||
if (entry == NULL) {
|
if (entry == NULL) {
|
||||||
g_free(anr);
|
l_free(anr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If one already exists, delete it */
|
/* If one already exists, delete it */
|
||||||
if (entry->anr)
|
if (entry->anr)
|
||||||
g_free(entry->anr);
|
l_free(entry->anr);
|
||||||
|
|
||||||
DBG("Adding ANR %s to %d", anr, rec_data->adn_idx);
|
DBG("Adding ANR %s to %d", anr, rec_data->adn_idx);
|
||||||
DBG("name %s", entry->name);
|
DBG("name %s", entry->name);
|
||||||
|
@ -427,20 +414,20 @@ static void handle_email(size_t len, const unsigned char *msg,
|
||||||
|
|
||||||
email = sim_string_to_utf8(msg, len);
|
email = sim_string_to_utf8(msg, len);
|
||||||
if (email == NULL || *email == '\0') {
|
if (email == NULL || *email == '\0') {
|
||||||
g_free(email);
|
l_free(email);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
entry = g_tree_lookup(ref->phonebook,
|
entry = g_tree_lookup(ref->phonebook,
|
||||||
GINT_TO_POINTER(rec_data->adn_idx));
|
GINT_TO_POINTER(rec_data->adn_idx));
|
||||||
if (entry == NULL) {
|
if (entry == NULL) {
|
||||||
g_free(email);
|
l_free(email);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if one already exists, delete it */
|
/* if one already exists, delete it */
|
||||||
if (entry->email)
|
if (entry->email)
|
||||||
g_free(entry->email);
|
l_free(entry->email);
|
||||||
|
|
||||||
DBG("Adding email to entry %d", rec_data->adn_idx);
|
DBG("Adding email to entry %d", rec_data->adn_idx);
|
||||||
DBG("name %s", entry->name);
|
DBG("name %s", entry->name);
|
||||||
|
@ -582,12 +569,12 @@ static gboolean export_entry(gpointer key, gpointer value, gpointer data)
|
||||||
entry->email,
|
entry->email,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
|
|
||||||
g_free(entry->name);
|
l_free(entry->name);
|
||||||
g_free(entry->number);
|
l_free(entry->number);
|
||||||
g_free(entry->email);
|
l_free(entry->email);
|
||||||
g_free(entry->anr);
|
l_free(entry->anr);
|
||||||
g_free(entry->sne);
|
l_free(entry->sne);
|
||||||
g_free(entry);
|
l_free(entry);
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue