File tree Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Original file line number Diff line number Diff line change @@ -1662,11 +1662,12 @@ smb2_ioctl_query_info(const unsigned int xid,
16621662 if (smb3_encryption_required (tcon ))
16631663 flags |= CIFS_TRANSFORM_REQ ;
16641664
1665- buffer = memdup_user (arg + sizeof (struct smb_query_info ),
1666- qi .output_buffer_length );
1667- if (IS_ERR (buffer )) {
1668- kfree (vars );
1669- return PTR_ERR (buffer );
1665+ if (qi .output_buffer_length ) {
1666+ buffer = memdup_user (arg + sizeof (struct smb_query_info ), qi .output_buffer_length );
1667+ if (IS_ERR (buffer )) {
1668+ kfree (vars );
1669+ return PTR_ERR (buffer );
1670+ }
16701671 }
16711672
16721673 /* Open */
@@ -1729,10 +1730,13 @@ smb2_ioctl_query_info(const unsigned int xid,
17291730 /* Can eventually relax perm check since server enforces too */
17301731 if (!capable (CAP_SYS_ADMIN ))
17311732 rc = - EPERM ;
1732- else {
1733+ else if (qi .output_buffer_length < 8 )
1734+ rc = - EINVAL ;
1735+ else {
17331736 rqst [1 ].rq_iov = & vars -> si_iov [0 ];
17341737 rqst [1 ].rq_nvec = 1 ;
17351738
1739+ /* MS-FSCC 2.4.13 FileEndOfFileInformation */
17361740 size [0 ] = 8 ;
17371741 data [0 ] = buffer ;
17381742
You can’t perform that action at this time.
0 commit comments