diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.c b/subsys/net/lib/lwm2m/lwm2m_engine.c index d29efd5370d..e7ee0bb67f6 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.c +++ b/subsys/net/lib/lwm2m/lwm2m_engine.c @@ -2640,8 +2640,7 @@ static int do_read_op(struct lwm2m_engine_obj *obj, res->res_id); if (!obj_field) { ret = -ENOENT; - } else if ((obj_field->permissions & - LWM2M_PERM_R) != LWM2M_PERM_R) { + } else if (!LWM2M_HAS_PERM(obj_field, LWM2M_PERM_R)) { ret = -EPERM; } else { /* formatter startup if needed */ diff --git a/subsys/net/lib/lwm2m/lwm2m_object.h b/subsys/net/lib/lwm2m/lwm2m_object.h index 0b6892912bf..b4d1a7c913d 100644 --- a/subsys/net/lib/lwm2m/lwm2m_object.h +++ b/subsys/net/lib/lwm2m/lwm2m_object.h @@ -81,6 +81,8 @@ LWM2M_OP_BIT(LWM2M_OP_CREATE) | \ LWM2M_OP_BIT(LWM2M_OP_EXECUTE)) +#define LWM2M_HAS_PERM(of, p) ((of->permissions & p) == p) + /* resource types */ #define LWM2M_RES_TYPE_NONE 0 #define LWM2M_RES_TYPE_OPAQUE 1 diff --git a/subsys/net/lib/lwm2m/lwm2m_rw_json.c b/subsys/net/lib/lwm2m/lwm2m_rw_json.c index a241a5af597..c1ade833fc5 100644 --- a/subsys/net/lib/lwm2m/lwm2m_rw_json.c +++ b/subsys/net/lib/lwm2m/lwm2m_rw_json.c @@ -569,8 +569,7 @@ int do_write_op_json(struct lwm2m_engine_obj *obj, goto skip_optional; } - if ((obj_field->permissions & LWM2M_PERM_W) != - LWM2M_PERM_W) { + if (!LWM2M_HAS_PERM(obj_field, LWM2M_PERM_W)) { return -EPERM; } diff --git a/subsys/net/lib/lwm2m/lwm2m_rw_oma_tlv.c b/subsys/net/lib/lwm2m/lwm2m_rw_oma_tlv.c index ae8c1e8cc31..2d2953b31b2 100644 --- a/subsys/net/lib/lwm2m/lwm2m_rw_oma_tlv.c +++ b/subsys/net/lib/lwm2m/lwm2m_rw_oma_tlv.c @@ -741,7 +741,7 @@ static int do_write_op_tlv_item(struct lwm2m_engine_context *context) return -ENOENT; } - if ((obj_field->permissions & LWM2M_PERM_W) != LWM2M_PERM_W) { + if (!LWM2M_HAS_PERM(obj_field, LWM2M_PERM_W)) { return -EPERM; } diff --git a/subsys/net/lib/lwm2m/lwm2m_rw_plain_text.c b/subsys/net/lib/lwm2m/lwm2m_rw_plain_text.c index d3764a4b31c..79d47bf5627 100644 --- a/subsys/net/lib/lwm2m/lwm2m_rw_plain_text.c +++ b/subsys/net/lib/lwm2m/lwm2m_rw_plain_text.c @@ -354,7 +354,7 @@ int do_write_op_plain_text(struct lwm2m_engine_obj *obj, return -ENOENT; } - if ((obj_field->permissions & LWM2M_PERM_W) != LWM2M_PERM_W) { + if (!LWM2M_HAS_PERM(obj_field, LWM2M_PERM_W)) { return -EPERM; }