]> git.droids-corp.org - protos/xbee-avr.git/blobdiff - rc_proto.c
save some documentation in notes.txt
[protos/xbee-avr.git] / rc_proto.c
index ee2888bb3f43de05dc4823a71bff2cf58d7a697f..a910b474e6fd5ebd1f159861532fd777f3f8e1ce 100644 (file)
@@ -16,9 +16,6 @@
 #include "rc_proto.h"
 #include "main.h"
 
-
-
-
 struct power_levels {
        int ttl;
        int power_db;
@@ -31,8 +28,12 @@ static int set_power_level(void *frame, unsigned len, void *arg)
        struct xbee_atresp_hdr *atresp = (struct xbee_atresp_hdr *)frame;
        int level = (intptr_t)arg;
        uint8_t db;
-       db = atresp->data[0];
 
+       /* XXX check if this test is correct */
+       if (len < sizeof(struct xbee_atresp_hdr) + sizeof(uint8_t))
+               return -1;
+
+       db = atresp->data[0];
        power_levels[level].power_db = db;
        power_levels[level].ttl = 2;
        return 0;