diff mbox

[1/3] NFS4.0: Case for linking to bad source patch with zero-length

Message ID 5358EE2F.9070301@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Kinglong Mee April 24, 2014, 10:57 a.m. UTC
Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 nfs4.0/servertests/st_create.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

J. Bruce Fields May 6, 2014, 8:34 p.m. UTC | #1
On Thu, Apr 24, 2014 at 06:57:51PM +0800, Kinglong Mee wrote:
> Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
> ---
>  nfs4.0/servertests/st_create.py | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/nfs4.0/servertests/st_create.py b/nfs4.0/servertests/st_create.py
> index d2d6701..09c80cc 100644
> --- a/nfs4.0/servertests/st_create.py
> +++ b/nfs4.0/servertests/st_create.py
> @@ -161,6 +161,19 @@ def testZeroLength(t, env):
>      res = c.create_obj(c.homedir + [''])
>      check(res, NFS4ERR_INVAL, "CREATE with zero-length name")
>  
> +def testZeroLengthForLNK(t, env):
> +    """CREATE with zero length name should return NFS4ERR_INVAL

Is it actually true that attempts to create symlinks with zero-length
content should fail with NFS4ERR_INVAL, and if so according to who?  (Is
there language in the RFC's?)

--b.

> +
> +    FLAGS: create symlink all
> +    CODE: CR9a
> +    """
> +    c = env.c1
> +    ops = c.go_home()
> +    objtype = createtype4(NF4LNK, **{'linkdata':''})
> +    ops += [c.create_op(objtype, t.code, getDefaultAttr(c))]
> +    res = c.compound(ops)
> +    check(res, NFS4ERR_INVAL, "CREATE with zero-length name for SYMLINK")
> +
>  def testRegularFile(t, env):
>      """CREATE should fail with NFS4ERR_BADTYPE for regular files
>  
> -- 
> 1.9.0
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kinglong Mee May 7, 2014, 9:55 a.m. UTC | #2
On 5/7/2014 04:34, J. Bruce Fields wrote:
> On Thu, Apr 24, 2014 at 06:57:51PM +0800, Kinglong Mee wrote:
>> Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
>> ---
>>  nfs4.0/servertests/st_create.py | 13 +++++++++++++
>>  1 file changed, 13 insertions(+)
>>
>> diff --git a/nfs4.0/servertests/st_create.py b/nfs4.0/servertests/st_create.py
>> index d2d6701..09c80cc 100644
>> --- a/nfs4.0/servertests/st_create.py
>> +++ b/nfs4.0/servertests/st_create.py
>> @@ -161,6 +161,19 @@ def testZeroLength(t, env):
>>      res = c.create_obj(c.homedir + [''])
>>      check(res, NFS4ERR_INVAL, "CREATE with zero-length name")
>>  
>> +def testZeroLengthForLNK(t, env):
>> +    """CREATE with zero length name should return NFS4ERR_INVAL
> 
> Is it actually true that attempts to create symlinks with zero-length
> content should fail with NFS4ERR_INVAL, and if so according to who?  (Is
> there language in the RFC's?)

This test is for Bernd Schubert's fix.
http://www.spinics.net/lists/linux-nfs/msg42800.html

According to rfc3530, 14.2.9, DESCRIPTION

   If the newname has a length of 0 (zero), or if newname does not obey
   the UTF-8 definition, the error NFS4ERR_INVAL will be returned.

thanks,
Kinglong Mee

>> +
>> +    FLAGS: create symlink all
>> +    CODE: CR9a
>> +    """
>> +    c = env.c1
>> +    ops = c.go_home()
>> +    objtype = createtype4(NF4LNK, **{'linkdata':''})
>> +    ops += [c.create_op(objtype, t.code, getDefaultAttr(c))]
>> +    res = c.compound(ops)
>> +    check(res, NFS4ERR_INVAL, "CREATE with zero-length name for SYMLINK")
>> +
>>  def testRegularFile(t, env):
>>      """CREATE should fail with NFS4ERR_BADTYPE for regular files
>>  
>> -- 
>> 1.9.0
>>
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/nfs4.0/servertests/st_create.py b/nfs4.0/servertests/st_create.py
index d2d6701..09c80cc 100644
--- a/nfs4.0/servertests/st_create.py
+++ b/nfs4.0/servertests/st_create.py
@@ -161,6 +161,19 @@  def testZeroLength(t, env):
     res = c.create_obj(c.homedir + [''])
     check(res, NFS4ERR_INVAL, "CREATE with zero-length name")
 
+def testZeroLengthForLNK(t, env):
+    """CREATE with zero length name should return NFS4ERR_INVAL
+
+    FLAGS: create symlink all
+    CODE: CR9a
+    """
+    c = env.c1
+    ops = c.go_home()
+    objtype = createtype4(NF4LNK, **{'linkdata':''})
+    ops += [c.create_op(objtype, t.code, getDefaultAttr(c))]
+    res = c.compound(ops)
+    check(res, NFS4ERR_INVAL, "CREATE with zero-length name for SYMLINK")
+
 def testRegularFile(t, env):
     """CREATE should fail with NFS4ERR_BADTYPE for regular files