]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Correct GSS major code for non-default QOP values
authorTomas Kuthan <tkuthan@gmail.com>
Wed, 30 Sep 2015 13:34:26 +0000 (15:34 +0200)
committerGreg Hudson <ghudson@mit.edu>
Wed, 30 Sep 2015 21:01:16 +0000 (17:01 -0400)
This patch fixes several krb5 mech error cases to comply with RFC
2743; non-default QOP arguments should result in GSS_S_BAD_QOP, not
GSS_S_FAILURE.

[ghudson@mit.edu: edit commit message]

ticket: 8258 (new)
target_version: 1.14
tags: pullup

src/lib/gssapi/krb5/k5seal.c
src/lib/gssapi/krb5/k5sealiov.c
src/lib/gssapi/krb5/wrap_size_limit.c

index f1c74dd52239a6216b4eb67eaf7ac58021b99abf..4da531b582458affaa585d63f99b7f79daea8a3e 100644 (file)
@@ -337,7 +337,7 @@ kg_seal(minor_status, context_handle, conf_req_flag, qop_req,
        them later.  */
     if (qop_req != 0) {
         *minor_status = (OM_uint32) G_UNKNOWN_QOP;
-        return GSS_S_FAILURE;
+        return GSS_S_BAD_QOP;
     }
 
     ctx = (krb5_gss_ctx_id_rec *) context_handle;
index b53e348f09e5d7b0b2013c6deafacd1f57f44c67..88caa856f86ab3ce7794acb57636aecf2ae1bcbf 100644 (file)
@@ -277,7 +277,7 @@ kg_seal_iov(OM_uint32 *minor_status,
 
     if (qop_req != 0) {
         *minor_status = (OM_uint32)G_UNKNOWN_QOP;
-        return GSS_S_FAILURE;
+        return GSS_S_BAD_QOP;
     }
 
     ctx = (krb5_gss_ctx_id_rec *)context_handle;
@@ -342,7 +342,7 @@ kg_seal_iov_length(OM_uint32 *minor_status,
 
     if (qop_req != GSS_C_QOP_DEFAULT) {
         *minor_status = (OM_uint32)G_UNKNOWN_QOP;
-        return GSS_S_FAILURE;
+        return GSS_S_BAD_QOP;
     }
 
     ctx = (krb5_gss_ctx_id_rec *)context_handle;
index ed5c599951d49b42602052190a99e3841d120bb5..7959f424ec96caddb41e48450fb16f740d1b9e20 100644 (file)
@@ -91,7 +91,7 @@ krb5_gss_wrap_size_limit(minor_status, context_handle, conf_req_flag,
     /* only default qop is allowed */
     if (qop_req != GSS_C_QOP_DEFAULT) {
         *minor_status = (OM_uint32) G_UNKNOWN_QOP;
-        return(GSS_S_FAILURE);
+        return GSS_S_BAD_QOP;
     }
 
     ctx = (krb5_gss_ctx_id_rec *) context_handle;