]> git.gag.com Git - debian/gnuradio/commitdiff
Fix USRP2 peek32() max words
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 31 Dec 2008 22:33:47 +0000 (22:33 +0000)
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 31 Dec 2008 22:33:47 +0000 (22:33 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10183 221aa14e-8319-0410-a670-987f0aec2ac5

usrp2/firmware/apps/app_common_v2.c
usrp2/firmware/include/usrp2_eth_packet.h

index 635093fbbc9c0e662ae5a4cccf3b596e0cdeca28..c498d30089c67ea426de12f334a468f6fc4767ab 100644 (file)
@@ -340,7 +340,8 @@ peek_cmd(const op_peek_t *p,
   putstr("peek: addr="); puthex32(p->addr);
   printf(" bytes=%u\n", p->bytes);
 
-  if (reply_payload_space < (sizeof(*r) + p->bytes)) {
+  if ((reply_payload_space < (sizeof(*r) + p->bytes)) ||
+      p->bytes > MAX_SUBPKT_LEN - sizeof(op_generic_t)) {
     putstr("peek: insufficient reply packet space\n");
     return 0;                  // FIXME do partial read?
   }
index 515394fabb6f12194301a3ce402594ec2c4ce7fe..e212fab833eb6724f9720c5328fff8bd4324c50d 100644 (file)
@@ -194,7 +194,7 @@ typedef struct {
  * All subpackets are a multiple of 4 bytes long.
  * All subpackets start with an 8-bit opcode, an 8-bit len and an 8-bit rid.
  */
-
+#define MAX_SUBPKT_LEN 252
 
 /*!
  * \brief Generic request and reply packet