> Es geht nur um die
> Funktion "u8HandleWriteMultipleRegisters" mit der 2. if-Abfrage.
> Es wird nur geprüft ob "p__u16StartAdr" nicht ausserhalb des
> Array-Bereichs liegt.
Alles schön und gut, aber hier
> sf_uint8 CModbus::u8HandleWriteMultipleRegisters (sf_uint16 p__u16StartAdr,
sf_uint16 p__u16Num, sf_uint8 p__u8ByteCnt, sf_uint8 p_au8Data[])
{
...
> for (u16WordCnt = 0; u16WordCnt < p__u16Num; u16WordCnt++, i += 2)/// Save new
values
vermisse ich den Test ob p__u16Num im zulässigen Bereich ist. Wenn
nicht, dann bügelst du dir den Speicher nieder. Und bei einer
Array-Länge von 1, ist das nicht sehr unwahrscheinlich.
Da sollte auf jeden Fall noch ein Test mit rein!