Thread (31 messages) 31 messages, 5 authors, 2016-11-28

[PATCH] fpga zynq: Check the bitstream for validity

flat view
STALE3626d

From: Matthias Brugger <mbrugger@suse.com>
Date: 2016-10-28 11:06:08


On 10/27/2016 04:39 PM, Jason Gunthorpe wrote:
On Thu, Oct 27, 2016 at 10:50:48AM +0200, Matthias Brugger wrote:
quoted
quoted
+		/* Sanity check the proposed bitstream. It must start with the
+		 * sync word in the correct byte order and be a multiple of 4
+		 * bytes.
+		 */
+		if (count <= 4 || buf[0] != 0x66 || buf[1] != 0x55 ||
+		    buf[2] != 0x99 || buf[3] != 0xaa) {
This checks if the bit stream is bigger then 4 bytes. We error out before,
if it is smaller.
We do? Where?
Just a few lines before:

+	/* All valid bitstreams are multiples of 32 bits */
+	if ((count % 4) != 0)
+		return -EINVAL;
+

The only case we don't check is, if count == 0. If we check that here, 
we can get rid of the count <= 4 check.
quoted
So you should fix the wording in the comment and check for count ==
4.
Ah right, the comment reflected an earlier revision that had the
length check here.

The count <= 4 should stay here since it is primarily guarding against
read past the buffer in the if.
If you insist in doing this check, it should be count < 4, because we 
check the first four elements of buf, or do I miss something?

Cheers,
Matthias
Jason

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help