2014-04-24 10:58:04

by Kinglong Mee

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

Signed-off-by: Kinglong Mee <[email protected]>
---
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
+
+ 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



2014-05-06 20:34:53

by J. Bruce Fields

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

On Thu, Apr 24, 2014 at 06:57:51PM +0800, Kinglong Mee wrote:
> Signed-off-by: Kinglong Mee <[email protected]>
> ---
> 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
>

2014-05-07 09:55:53

by Kinglong Mee

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



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 <[email protected]>
>> ---
>> 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
>>
>