mirror of
https://github.com/thelsing/knx.git
synced 2024-12-18 19:08:18 +01:00
check value range before accessing a group objects
This commit is contained in:
parent
150f3fc24b
commit
7e6de21a95
@ -6,7 +6,7 @@
|
||||
BauSystemBDevice::BauSystemBDevice(Platform& platform) :
|
||||
BauSystemB(platform),
|
||||
_addrTable(_memory),
|
||||
_assocTable(_memory), _groupObjTable(_memory),
|
||||
_assocTable(_memory), _groupObjTable(_memory, platform),
|
||||
#ifdef USE_DATASECURE
|
||||
_appLayer(_deviceObj, _secIfObj, *this),
|
||||
#else
|
||||
|
@ -5,8 +5,8 @@
|
||||
#include "bits.h"
|
||||
#include "data_property.h"
|
||||
|
||||
GroupObjectTableObject::GroupObjectTableObject(Memory& memory)
|
||||
: TableObject(memory)
|
||||
GroupObjectTableObject::GroupObjectTableObject(Memory& memory, Platform& platform)
|
||||
: TableObject(memory), _platform(platform)
|
||||
{
|
||||
Property* properties[]
|
||||
{
|
||||
@ -30,6 +30,11 @@ uint16_t GroupObjectTableObject::entryCount()
|
||||
|
||||
GroupObject& GroupObjectTableObject::get(uint16_t asap)
|
||||
{
|
||||
if ((asap == 0) || (asap > UINT8_MAX)) {
|
||||
println("Group Object ID out of range!");
|
||||
_platform.fatalError();
|
||||
}
|
||||
|
||||
return _groupObjects[asap - 1];
|
||||
}
|
||||
|
||||
|
@ -2,13 +2,14 @@
|
||||
|
||||
#include "table_object.h"
|
||||
#include "group_object.h"
|
||||
#include "platform.h"
|
||||
|
||||
class GroupObjectTableObject : public TableObject
|
||||
{
|
||||
friend class GroupObject;
|
||||
|
||||
public:
|
||||
GroupObjectTableObject(Memory& memory);
|
||||
GroupObjectTableObject(Memory& memory, Platform& platform);
|
||||
virtual ~GroupObjectTableObject();
|
||||
uint16_t entryCount();
|
||||
GroupObject& get(uint16_t asap);
|
||||
@ -24,6 +25,7 @@ class GroupObjectTableObject : public TableObject
|
||||
void freeGroupObjects();
|
||||
bool initGroupObjects();
|
||||
uint16_t* _tableData = 0;
|
||||
Platform& _platform;
|
||||
GroupObject* _groupObjects = 0;
|
||||
uint16_t _groupObjectCount = 0;
|
||||
};
|
Loading…
Reference in New Issue
Block a user