summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/bitmap.c9
-rw-r--r--src/lib/dev.c20
2 files changed, 23 insertions, 6 deletions
diff --git a/src/lib/bitmap.c b/src/lib/bitmap.c
index 0e3c968f..e84145b2 100644
--- a/src/lib/bitmap.c
+++ b/src/lib/bitmap.c
@@ -112,7 +112,7 @@ struct bmp * bmp_create(size_t bits, ssize_t offset)
return NULL;
tmp->bitmap = malloc(BITS_TO_LONGS(bits) * sizeof(unsigned long));
- if (!tmp->bitmap) {
+ if (tmp->bitmap == NULL) {
free(tmp);
return NULL;
}
@@ -142,6 +142,9 @@ int bmp_destroy(struct bmp * b)
static ssize_t bad_id(struct bmp * b)
{
+ if (b == NULL)
+ return -1;
+
return b->offset - 1;
}
@@ -177,7 +180,7 @@ static bool is_id_valid(struct bmp * b,
bool bmp_is_id_valid(struct bmp * b,
ssize_t id)
{
- if (!b)
+ if (b == NULL)
return false;
return is_id_valid(b, id);
@@ -188,7 +191,7 @@ int bmp_release(struct bmp * b,
{
ssize_t rid;
- if (!b)
+ if (b == NULL)
return -1;
if (!is_id_valid(b, id))
diff --git a/src/lib/dev.c b/src/lib/dev.c
index 40bf2dc3..c99e8cdb 100644
--- a/src/lib/dev.c
+++ b/src/lib/dev.c
@@ -249,12 +249,26 @@ int flow_accept(int fd,
return -1;
}
+ *ap_name = strdup(recv_msg->ap_name);
+ if (*ap_name == NULL) {
+ bmp_release(_ap_instance->fds, cfd);
+ irm_msg__free_unpacked(recv_msg, NULL);
+ return -1;
+ }
+
+ if (ae_name != NULL) {
+ *ae_name = strdup(recv_msg->ae_name);
+ if (*ae_name == NULL) {
+ bmp_release(_ap_instance->fds, cfd);
+ irm_msg__free_unpacked(recv_msg, NULL);
+ return -1;
+ }
+ }
+
_ap_instance->flows[cfd].port_id = recv_msg->port_id;
_ap_instance->flows[cfd].oflags = FLOW_O_DEFAULT;
- *ap_name = strdup(recv_msg->ap_name);
- if (ae_name != NULL)
- *ae_name = strdup(recv_msg->ae_name);
+
irm_msg__free_unpacked(recv_msg, NULL);