Hello Oldrich,

+
+void procd_state_event(struct blob_buf *b)
+{
+       void *c, *s;
+       struct timespec *ts_start;
+       struct timespec *ts_stop;
+       struct timespec ts_active;
+       struct timespec ts_res;
+       double duration;
+
+       c = blobmsg_open_table(b, "state");
+
+       for (int i = 0; i < __STATE_MAX - 1; i++)
+       {
+               ts_start = &s_event[i].ts_event;
+               ts_stop = &s_event[i+1].ts_event;

Hi, this looks like out-of-bounds access for the last iteration.


I would say, this is ok, because the loop
'for (int i = 0; i < __STATE_MAX - 1; i++)' does 'i < __STATE_MAX - 1'
and so the STATE_HALT would never hit but could use the memory to read
ts_stop with 'ts_stop = &s_event[i+1].ts_event;'

Best regards

Florian

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to