review of small ASN patch

View: New views
2 Messages — Rating Filter:   Alert me  

review of small ASN patch

by Steve French-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

ASN experts ... comments on the following patch to the kernel client?

From: Chris Wright <chrisw@...>

When verifying the decoded header before decoding the object identifier
(expecting a SPNEGO pseudo-mechanism oid), the test to verify it is a
primitive encoding is compared against the asn1 class.  Primitive is not a
class.  This brings check in line with similar check for krb/ntlmssp oid.

Signed-off-by: Chris Wright <chrisw@...>
Cc: Steven French <sfrench@...>
Signed-off-by: Andrew Morton <akpm@...>
---

 fs/cifs/asn1.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN fs/cifs/asn1.c~cifs-primitive-is-not-an-asn1-class fs/cifs/asn1.c
--- a/fs/cifs/asn1.c~cifs-primitive-is-not-an-asn1-class
+++ a/fs/cifs/asn1.c
@@ -494,7 +494,7 @@ decode_negTokenInit(unsigned char *secur
              /*      remember to free obj->oid */
              rc = asn1_header_decode(&ctx, &end, &cls, &con, &tag);
              if (rc) {
-                       if ((tag == ASN1_OJI) && (cls == ASN1_PRI)) {
+                       if ((tag == ASN1_OJI) && (con == ASN1_PRI)) {
                              rc = asn1_oid_decode(&ctx, end, &oid, &oidlen);
                              if (rc) {
                                      rc = compare_oid(oid, oidlen,
_

--
Thanks,

Steve

Re: review of small ASN patch

by Love Hörnquist Åstrand :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The oid is indeed a primitive object PRIM(0), class should be  
UNIVersal (0).

Love


24 jul 2008 kl. 21.11 skrev Steve French:

> ASN experts ... comments on the following patch to the kernel client?
>
> From: Chris Wright <chrisw@...>
>
> When verifying the decoded header before decoding the object  
> identifier
> (expecting a SPNEGO pseudo-mechanism oid), the test to verify it is a
> primitive encoding is compared against the asn1 class.  Primitive is  
> not a
> class.  This brings check in line with similar check for krb/ntlmssp  
> oid.
>
> Signed-off-by: Chris Wright <chrisw@...>
> Cc: Steven French <sfrench@...>
> Signed-off-by: Andrew Morton <akpm@...>
> ---
>
> fs/cifs/asn1.c |    2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff -puN fs/cifs/asn1.c~cifs-primitive-is-not-an-asn1-class fs/cifs/
> asn1.c
> --- a/fs/cifs/asn1.c~cifs-primitive-is-not-an-asn1-class
> +++ a/fs/cifs/asn1.c
> @@ -494,7 +494,7 @@ decode_negTokenInit(unsigned char *secur
>              /*      remember to free obj->oid */
>              rc = asn1_header_decode(&ctx, &end, &cls, &con, &tag);
>              if (rc) {
> -                       if ((tag == ASN1_OJI) && (cls == ASN1_PRI)) {
> +                       if ((tag == ASN1_OJI) && (con == ASN1_PRI)) {
>                              rc = asn1_oid_decode(&ctx, end, &oid,  
> &oidlen);
>                              if (rc) {
>                                      rc = compare_oid(oid, oidlen,
> _
>
> --
> Thanks,
>
> Steve