diff mbox series

[U-Boot,v2,1/3] net: Correct size of NFS buffers

Message ID 20180704002256.7461-1-joe.hershberger@ni.com
State Accepted
Commit 2d114b83a7e44d448b6ffe1bf5e2ced11b769ab2
Delegated to: Joe Hershberger
Headers show
Series [U-Boot,v2,1/3] net: Correct size of NFS buffers | expand

Commit Message

Joe Hershberger July 4, 2018, 12:22 a.m. UTC
Reported-by: Coverity (CID: 152888)
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
---

Changes in v2:
- Take into account the attributes that could be there
- Tested with v2 and v3

 net/nfs.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Joe Hershberger July 26, 2018, 7:16 p.m. UTC | #1
Hi Joe,

https://patchwork.ozlabs.org/patch/939037/ was applied to http://git.denx.de/?p=u-boot/u-boot-net.git

Thanks!
-Joe
diff mbox series

Patch

diff --git a/net/nfs.h b/net/nfs.h
index 6359cd2848..a377c90088 100644
--- a/net/nfs.h
+++ b/net/nfs.h
@@ -42,6 +42,7 @@ 
  * case, most NFS servers are optimized for a power of 2.
  */
 #define NFS_READ_SIZE	1024	/* biggest power of two that fits Ether frame */
+#define NFS_MAX_ATTRS	26
 
 /* Values for Accept State flag on RPC answers (See: rfc1831) */
 enum rpc_accept_stat {
@@ -55,7 +56,8 @@  enum rpc_accept_stat {
 
 struct rpc_t {
 	union {
-		uint8_t data[2048];
+		uint8_t data[NFS_READ_SIZE + (6 + NFS_MAX_ATTRS) *
+			sizeof(uint32_t)];
 		struct {
 			uint32_t id;
 			uint32_t type;
@@ -72,7 +74,8 @@  struct rpc_t {
 			uint32_t verifier;
 			uint32_t v2;
 			uint32_t astatus;
-			uint32_t data[NFS_READ_SIZE];
+			uint32_t data[NFS_READ_SIZE / sizeof(uint32_t) +
+				NFS_MAX_ATTRS];
 		} reply;
 	} u;
 } __attribute__((packed));