guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: gnu: mit-krb5: Update to 1.14.2.


From: Ludovic Courtès
Subject: 02/02: gnu: mit-krb5: Update to 1.14.2.
Date: Tue, 14 Jun 2016 19:29:17 +0000 (UTC)

civodul pushed a commit to branch core-updates
in repository guix.

commit 65efa9ba9c54bf0eb145a20e5d7c34f7d16a2b46
Author: Ludovic Courtès <address@hidden>
Date:   Tue Jun 14 21:21:18 2016 +0200

    gnu: mit-krb5: Update to 1.14.2.
    
    * gnu/packages/mit-krb5.scm (mit-krb5): Update to 1.14.2.
    [source]: Remove 'patches'.
    * gnu/packages/patches/mit-krb5-CVE-2015-8629.patch,
    gnu/packages/patches/mit-krb5-CVE-2015-8630.patch,
    gnu/packages/patches/mit-krb5-CVE-2015-8631.patch,
    gnu/packages/patches/mit-krb5-init-context-null-spnego.patch: Remove.
    * gnu/local.mk (dist_patch_DATA): Adjust accordingly.
---
 gnu/local.mk                                       |    4 -
 gnu/packages/mit-krb5.scm                          |    9 +-
 gnu/packages/patches/mit-krb5-CVE-2015-8629.patch  |   51 --
 gnu/packages/patches/mit-krb5-CVE-2015-8630.patch  |   81 ---
 gnu/packages/patches/mit-krb5-CVE-2015-8631.patch  |  576 --------------------
 .../mit-krb5-init-context-null-spnego.patch        |   49 --
 6 files changed, 2 insertions(+), 768 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index cdb76cb..ec88bd8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -648,10 +648,6 @@ dist_patch_DATA =                                          
\
   %D%/packages/patches/mcrypt-CVE-2012-4426.patch                      \
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch                      \
   %D%/packages/patches/mhash-keygen-test-segfault.patch                \
-  %D%/packages/patches/mit-krb5-CVE-2015-8629.patch            \
-  %D%/packages/patches/mit-krb5-CVE-2015-8630.patch            \
-  %D%/packages/patches/mit-krb5-CVE-2015-8631.patch            \
-  %D%/packages/patches/mit-krb5-init-context-null-spnego.patch \
   %D%/packages/patches/mpc123-initialize-ao.patch              \
   %D%/packages/patches/mplayer2-theora-fix.patch               \
   %D%/packages/patches/module-init-tools-moduledir.patch       \
diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm
index e7f46ff..43cc376 100644
--- a/gnu/packages/mit-krb5.scm
+++ b/gnu/packages/mit-krb5.scm
@@ -30,7 +30,7 @@
 (define-public mit-krb5
   (package
     (name "mit-krb5")
-    (version "1.13.3")
+    (version "1.14.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://web.mit.edu/kerberos/dist/krb5/";
@@ -38,12 +38,7 @@
                                   "/krb5-" version ".tar.gz"))
               (sha256
                (base32
-                "1gpscn78lv48dxccxq9ncyj53w9l2a15xmngjfa1wylvmn7g0jjx"))
-              (patches
-               (search-patches "mit-krb5-init-context-null-spnego.patch"
-                               "mit-krb5-CVE-2015-8629.patch"
-                               "mit-krb5-CVE-2015-8630.patch"
-                               "mit-krb5-CVE-2015-8631.patch"))))
+                "09wbv969ak4fqlqr1ip5bi62fny1zlp1vwjarvj6a6cdfzkdgjkb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-8629.patch 
b/gnu/packages/patches/mit-krb5-CVE-2015-8629.patch
deleted file mode 100644
index a296d8c..0000000
--- a/gnu/packages/patches/mit-krb5-CVE-2015-8629.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Copied from Fedora.
-http://pkgs.fedoraproject.org/cgit/rpms/krb5.git/tree/krb5-CVE-2015-8629.patch?h=f22
-
-From df17a1224a3406f57477bcd372c61e04c0e5a5bb Mon Sep 17 00:00:00 2001
-From: Greg Hudson <address@hidden>
-Date: Fri, 8 Jan 2016 12:45:25 -0500
-Subject: [PATCH 1/3] Verify decoded kadmin C strings [CVE-2015-8629]
-
-In xdr_nullstring(), check that the decoded string is terminated with
-a zero byte and does not contain any internal zero bytes.
-
-CVE-2015-8629:
-
-In all versions of MIT krb5, an authenticated attacker can cause
-kadmind to read beyond the end of allocated memory by sending a string
-without a terminating zero byte.  Information leakage may be possible
-for an attacker with permission to modify the database.
-
-    CVSSv2 Vector: AV:N/AC:H/Au:S/C:P/I:N/A:N/E:POC/RL:OF/RC:C
-
-ticket: 8341 (new)
-target_version: 1.14-next
-target_version: 1.13-next
-tags: pullup
----
- src/lib/kadm5/kadm_rpc_xdr.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/src/lib/kadm5/kadm_rpc_xdr.c b/src/lib/kadm5/kadm_rpc_xdr.c
-index 2bef858..ba67084 100644
---- a/src/lib/kadm5/kadm_rpc_xdr.c
-+++ b/src/lib/kadm5/kadm_rpc_xdr.c
-@@ -64,7 +64,14 @@ bool_t xdr_nullstring(XDR *xdrs, char **objp)
-                   return FALSE;
-              }
-         }
--        return (xdr_opaque(xdrs, *objp, size));
-+        if (!xdr_opaque(xdrs, *objp, size))
-+                return FALSE;
-+        /* Check that the unmarshalled bytes are a C string. */
-+        if ((*objp)[size - 1] != '\0')
-+                return FALSE;
-+        if (memchr(*objp, '\0', size - 1) != NULL)
-+                return FALSE;
-+        return TRUE;
- 
-      case XDR_ENCODE:
-         if (size != 0)
--- 
-2.7.0.rc3
-
diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-8630.patch 
b/gnu/packages/patches/mit-krb5-CVE-2015-8630.patch
deleted file mode 100644
index c21d84b..0000000
--- a/gnu/packages/patches/mit-krb5-CVE-2015-8630.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Copied from Fedora.
-http://pkgs.fedoraproject.org/cgit/rpms/krb5.git/tree/krb5-CVE-2015-8630.patch?h=f22
-
-From b863de7fbf080b15e347a736fdda0a82d42f4f6b Mon Sep 17 00:00:00 2001
-From: Greg Hudson <address@hidden>
-Date: Fri, 8 Jan 2016 12:52:28 -0500
-Subject: [PATCH 2/3] Check for null kadm5 policy name [CVE-2015-8630]
-
-In kadm5_create_principal_3() and kadm5_modify_principal(), check for
-entry->policy being null when KADM5_POLICY is included in the mask.
-
-CVE-2015-8630:
-
-In MIT krb5 1.12 and later, an authenticated attacker with permission
-to modify a principal entry can cause kadmind to dereference a null
-pointer by supplying a null policy value but including KADM5_POLICY in
-the mask.
-
-    CVSSv2 Vector: AV:N/AC:H/Au:S/C:N/I:N/A:C/E:POC/RL:OF/RC:C
-
-ticket: 8342 (new)
-target_version: 1.14-next
-target_version: 1.13-next
-tags: pullup
----
- src/lib/kadm5/srv/svr_principal.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/src/lib/kadm5/srv/svr_principal.c 
b/src/lib/kadm5/srv/svr_principal.c
-index 5b95fa3..1d4365c 100644
---- a/src/lib/kadm5/srv/svr_principal.c
-+++ b/src/lib/kadm5/srv/svr_principal.c
-@@ -395,6 +395,8 @@ kadm5_create_principal_3(void *server_handle,
-     /*
-      * Argument sanity checking, and opening up the DB
-      */
-+    if (entry == NULL)
-+        return EINVAL;
-     if(!(mask & KADM5_PRINCIPAL) || (mask & KADM5_MOD_NAME) ||
-        (mask & KADM5_MOD_TIME) || (mask & KADM5_LAST_PWD_CHANGE) ||
-        (mask & KADM5_MKVNO) || (mask & KADM5_AUX_ATTRIBUTES) ||
-@@ -403,12 +405,12 @@ kadm5_create_principal_3(void *server_handle,
-         return KADM5_BAD_MASK;
-     if ((mask & KADM5_KEY_DATA) && entry->n_key_data != 0)
-         return KADM5_BAD_MASK;
-+    if((mask & KADM5_POLICY) && entry->policy == NULL)
-+        return KADM5_BAD_MASK;
-     if((mask & KADM5_POLICY) && (mask & KADM5_POLICY_CLR))
-         return KADM5_BAD_MASK;
-     if((mask & ~ALL_PRINC_MASK))
-         return KADM5_BAD_MASK;
--    if (entry == NULL)
--        return EINVAL;
- 
-     /*
-      * Check to see if the principal exists
-@@ -643,6 +645,8 @@ kadm5_modify_principal(void *server_handle,
- 
-     krb5_clear_error_message(handle->context);
- 
-+    if(entry == NULL)
-+        return EINVAL;
-     if((mask & KADM5_PRINCIPAL) || (mask & KADM5_LAST_PWD_CHANGE) ||
-        (mask & KADM5_MOD_TIME) || (mask & KADM5_MOD_NAME) ||
-        (mask & KADM5_MKVNO) || (mask & KADM5_AUX_ATTRIBUTES) ||
-@@ -651,10 +655,10 @@ kadm5_modify_principal(void *server_handle,
-         return KADM5_BAD_MASK;
-     if((mask & ~ALL_PRINC_MASK))
-         return KADM5_BAD_MASK;
-+    if((mask & KADM5_POLICY) && entry->policy == NULL)
-+        return KADM5_BAD_MASK;
-     if((mask & KADM5_POLICY) && (mask & KADM5_POLICY_CLR))
-         return KADM5_BAD_MASK;
--    if(entry == (kadm5_principal_ent_t) NULL)
--        return EINVAL;
-     if (mask & KADM5_TL_DATA) {
-         tl_data_orig = entry->tl_data;
-         while (tl_data_orig) {
--- 
-2.7.0.rc3
-
diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-8631.patch 
b/gnu/packages/patches/mit-krb5-CVE-2015-8631.patch
deleted file mode 100644
index dd1eb29..0000000
--- a/gnu/packages/patches/mit-krb5-CVE-2015-8631.patch
+++ /dev/null
@@ -1,576 +0,0 @@
-Copied from Fedora.
-http://pkgs.fedoraproject.org/cgit/rpms/krb5.git/tree/krb5-CVE-2015-8631.patch?h=f22
-
-From 83ed75feba32e46f736fcce0d96a0445f29b96c2 Mon Sep 17 00:00:00 2001
-From: Greg Hudson <address@hidden>
-Date: Fri, 8 Jan 2016 13:16:54 -0500
-Subject: [PATCH 3/3] Fix leaks in kadmin server stubs [CVE-2015-8631]
-
-In each kadmind server stub, initialize the client_name and
-server_name variables, and release them in the cleanup handler.  Many
-of the stubs will otherwise leak the client and server name if
-krb5_unparse_name() fails.  Also make sure to free the prime_arg
-variables in rename_principal_2_svc(), or we can leak the first one if
-unparsing the second one fails.  Discovered by Simo Sorce.
-
-CVE-2015-8631:
-
-In all versions of MIT krb5, an authenticated attacker can cause
-kadmind to leak memory by supplying a null principal name in a request
-which uses one.  Repeating these requests will eventually cause
-kadmind to exhaust all available memory.
-
-    CVSSv2 Vector: AV:N/AC:L/Au:S/C:N/I:N/A:C/E:POC/RL:OF/RC:C
-
-ticket: 8343 (new)
-target_version: 1.14-next
-target_version: 1.13-next
-tags: pullup
----
- src/kadmin/server/server_stubs.c | 151 ++++++++++++++++++++-------------------
- 1 file changed, 77 insertions(+), 74 deletions(-)
-
-diff --git a/src/kadmin/server/server_stubs.c 
b/src/kadmin/server/server_stubs.c
-index 1879dc6..6ac797e 100644
---- a/src/kadmin/server/server_stubs.c
-+++ b/src/kadmin/server/server_stubs.c
-@@ -334,7 +334,8 @@ create_principal_2_svc(cprinc_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret          ret;
-     char                        *prime_arg;
--    gss_buffer_desc             client_name, service_name;
-+    gss_buffer_desc             client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc             service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                   minor_stat;
-     kadm5_server_handle_t       handle;
-     restriction_t               *rp;
-@@ -382,10 +383,10 @@ create_principal_2_svc(cprinc_arg *arg, struct svc_req 
*rqstp)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-     free(prime_arg);
--    gss_release_buffer(&minor_stat, &client_name);
--    gss_release_buffer(&minor_stat, &service_name);
- 
- exit_func:
-+    gss_release_buffer(&minor_stat, &client_name);
-+    gss_release_buffer(&minor_stat, &service_name);
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -395,7 +396,8 @@ create_principal3_2_svc(cprinc3_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret          ret;
-     char                        *prime_arg;
--    gss_buffer_desc             client_name, service_name;
-+    gss_buffer_desc             client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc             service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                   minor_stat;
-     kadm5_server_handle_t       handle;
-     restriction_t               *rp;
-@@ -444,10 +446,10 @@ create_principal3_2_svc(cprinc3_arg *arg, struct svc_req 
*rqstp)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-     free(prime_arg);
--    gss_release_buffer(&minor_stat, &client_name);
--    gss_release_buffer(&minor_stat, &service_name);
- 
- exit_func:
-+    gss_release_buffer(&minor_stat, &client_name);
-+    gss_release_buffer(&minor_stat, &service_name);
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -457,8 +459,8 @@ delete_principal_2_svc(dprinc_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -501,10 +503,10 @@ delete_principal_2_svc(dprinc_arg *arg, struct svc_req 
*rqstp)
- 
-     }
-     free(prime_arg);
--    gss_release_buffer(&minor_stat, &client_name);
--    gss_release_buffer(&minor_stat, &service_name);
- 
- exit_func:
-+    gss_release_buffer(&minor_stat, &client_name);
-+    gss_release_buffer(&minor_stat, &service_name);
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -514,8 +516,8 @@ modify_principal_2_svc(mprinc_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     restriction_t                   *rp;
-@@ -559,9 +561,9 @@ modify_principal_2_svc(mprinc_arg *arg, struct svc_req 
*rqstp)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -570,10 +572,9 @@ generic_ret *
- rename_principal_2_svc(rprinc_arg *arg, struct svc_req *rqstp)
- {
-     static generic_ret          ret;
--    char                        *prime_arg1,
--        *prime_arg2;
--    gss_buffer_desc             client_name,
--        service_name;
-+    char                        *prime_arg1 = NULL, *prime_arg2 = NULL;
-+    gss_buffer_desc             client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc             service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                   minor_stat;
-     kadm5_server_handle_t       handle;
-     restriction_t               *rp;
-@@ -655,11 +656,11 @@ rename_principal_2_svc(rprinc_arg *arg, struct svc_req 
*rqstp)
-             krb5_free_error_message(handle->context, errmsg);
- 
-     }
-+exit_func:
-     free(prime_arg1);
-     free(prime_arg2);
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -669,8 +670,8 @@ get_principal_2_svc(gprinc_arg *arg, struct svc_req *rqstp)
- {
-     static gprinc_ret               ret;
-     char                            *prime_arg, *funcname;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -719,9 +720,9 @@ get_principal_2_svc(gprinc_arg *arg, struct svc_req *rqstp)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -731,8 +732,8 @@ get_princs_2_svc(gprincs_arg *arg, struct svc_req *rqstp)
- {
-     static gprincs_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -777,9 +778,9 @@ get_princs_2_svc(gprincs_arg *arg, struct svc_req *rqstp)
-             krb5_free_error_message(handle->context, errmsg);
- 
-     }
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -789,8 +790,8 @@ chpass_principal_2_svc(chpass_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -840,9 +841,9 @@ chpass_principal_2_svc(chpass_arg *arg, struct svc_req 
*rqstp)
-     }
- 
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -852,8 +853,8 @@ chpass_principal3_2_svc(chpass3_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -909,9 +910,9 @@ chpass_principal3_2_svc(chpass3_arg *arg, struct svc_req 
*rqstp)
-     }
- 
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -921,8 +922,8 @@ setv4key_principal_2_svc(setv4key_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -969,9 +970,9 @@ setv4key_principal_2_svc(setv4key_arg *arg, struct svc_req 
*rqstp)
-     }
- 
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -981,8 +982,8 @@ setkey_principal_2_svc(setkey_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -1029,9 +1030,9 @@ setkey_principal_2_svc(setkey_arg *arg, struct svc_req 
*rqstp)
-     }
- 
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1041,8 +1042,8 @@ setkey_principal3_2_svc(setkey3_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -1092,9 +1093,9 @@ setkey_principal3_2_svc(setkey3_arg *arg, struct svc_req 
*rqstp)
-     }
- 
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1106,8 +1107,8 @@ chrand_principal_2_svc(chrand_arg *arg, struct svc_req 
*rqstp)
-     krb5_keyblock               *k;
-     int                         nkeys;
-     char                        *prime_arg, *funcname;
--    gss_buffer_desc             client_name,
--        service_name;
-+    gss_buffer_desc             client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc             service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                   minor_stat;
-     kadm5_server_handle_t       handle;
-     const char                  *errmsg = NULL;
-@@ -1164,9 +1165,9 @@ chrand_principal_2_svc(chrand_arg *arg, struct svc_req 
*rqstp)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1178,8 +1179,8 @@ chrand_principal3_2_svc(chrand3_arg *arg, struct svc_req 
*rqstp)
-     krb5_keyblock               *k;
-     int                         nkeys;
-     char                        *prime_arg, *funcname;
--    gss_buffer_desc             client_name,
--        service_name;
-+    gss_buffer_desc             client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc             service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                   minor_stat;
-     kadm5_server_handle_t       handle;
-     const char                  *errmsg = NULL;
-@@ -1241,9 +1242,9 @@ chrand_principal3_2_svc(chrand3_arg *arg, struct svc_req 
*rqstp)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1253,8 +1254,8 @@ create_policy_2_svc(cpol_arg *arg, struct svc_req *rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -1295,9 +1296,9 @@ create_policy_2_svc(cpol_arg *arg, struct svc_req *rqstp)
-         if (errmsg != NULL)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1307,8 +1308,8 @@ delete_policy_2_svc(dpol_arg *arg, struct svc_req *rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -1347,9 +1348,9 @@ delete_policy_2_svc(dpol_arg *arg, struct svc_req *rqstp)
-         if (errmsg != NULL)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1359,8 +1360,8 @@ modify_policy_2_svc(mpol_arg *arg, struct svc_req *rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -1400,9 +1401,9 @@ modify_policy_2_svc(mpol_arg *arg, struct svc_req *rqstp)
-         if (errmsg != NULL)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1413,8 +1414,8 @@ get_policy_2_svc(gpol_arg *arg, struct svc_req *rqstp)
-     static gpol_ret             ret;
-     kadm5_ret_t         ret2;
-     char                        *prime_arg, *funcname;
--    gss_buffer_desc             client_name,
--        service_name;
-+    gss_buffer_desc             client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc             service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                   minor_stat;
-     kadm5_principal_ent_rec     caller_ent;
-     kadm5_server_handle_t       handle;
-@@ -1475,9 +1476,9 @@ get_policy_2_svc(gpol_arg *arg, struct svc_req *rqstp)
-         log_unauth(funcname, prime_arg,
-                    &client_name, &service_name, rqstp);
-     }
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- 
-@@ -1488,8 +1489,8 @@ get_pols_2_svc(gpols_arg *arg, struct svc_req *rqstp)
- {
-     static gpols_ret                ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -1531,9 +1532,9 @@ get_pols_2_svc(gpols_arg *arg, struct svc_req *rqstp)
-         if (errmsg != NULL)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1541,7 +1542,8 @@ exit_func:
- getprivs_ret * get_privs_2_svc(krb5_ui_4 *arg, struct svc_req *rqstp)
- {
-     static getprivs_ret            ret;
--    gss_buffer_desc                client_name, service_name;
-+    gss_buffer_desc                client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                      minor_stat;
-     kadm5_server_handle_t          handle;
-     const char                     *errmsg = NULL;
-@@ -1571,9 +1573,9 @@ getprivs_ret * get_privs_2_svc(krb5_ui_4 *arg, struct 
svc_req *rqstp)
-     if (errmsg != NULL)
-         krb5_free_error_message(handle->context, errmsg);
- 
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1583,7 +1585,8 @@ purgekeys_2_svc(purgekeys_arg *arg, struct svc_req 
*rqstp)
- {
-     static generic_ret          ret;
-     char                        *prime_arg, *funcname;
--    gss_buffer_desc             client_name, service_name;
-+    gss_buffer_desc             client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc             service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                   minor_stat;
-     kadm5_server_handle_t       handle;
- 
-@@ -1629,9 +1632,9 @@ purgekeys_2_svc(purgekeys_arg *arg, struct svc_req 
*rqstp)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1641,8 +1644,8 @@ get_strings_2_svc(gstrings_arg *arg, struct svc_req 
*rqstp)
- {
-     static gstrings_ret             ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -1688,9 +1691,9 @@ get_strings_2_svc(gstrings_arg *arg, struct svc_req 
*rqstp)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1700,8 +1703,8 @@ set_string_2_svc(sstring_arg *arg, struct svc_req *rqstp)
- {
-     static generic_ret              ret;
-     char                            *prime_arg;
--    gss_buffer_desc                 client_name,
--        service_name;
-+    gss_buffer_desc                 client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc                 service_name = GSS_C_EMPTY_BUFFER;
-     OM_uint32                       minor_stat;
-     kadm5_server_handle_t           handle;
-     const char                      *errmsg = NULL;
-@@ -1744,9 +1747,9 @@ set_string_2_svc(sstring_arg *arg, struct svc_req *rqstp)
-             krb5_free_error_message(handle->context, errmsg);
-     }
-     free(prime_arg);
-+exit_func:
-     gss_release_buffer(&minor_stat, &client_name);
-     gss_release_buffer(&minor_stat, &service_name);
--exit_func:
-     free_server_handle(handle);
-     return &ret;
- }
-@@ -1754,8 +1757,8 @@ exit_func:
- generic_ret *init_2_svc(krb5_ui_4 *arg, struct svc_req *rqstp)
- {
-     static generic_ret         ret;
--    gss_buffer_desc            client_name,
--        service_name;
-+    gss_buffer_desc            client_name = GSS_C_EMPTY_BUFFER;
-+    gss_buffer_desc            service_name = GSS_C_EMPTY_BUFFER;
-     kadm5_server_handle_t      handle;
-     OM_uint32                  minor_stat;
-     const char                 *errmsg = NULL;
-@@ -1797,10 +1800,10 @@ generic_ret *init_2_svc(krb5_ui_4 *arg, struct svc_req 
*rqstp)
-                      rqstp->rq_cred.oa_flavor);
-     if (errmsg != NULL)
-         krb5_free_error_message(NULL, errmsg);
--    gss_release_buffer(&minor_stat, &client_name);
--    gss_release_buffer(&minor_stat, &service_name);
- 
- exit_func:
-+    gss_release_buffer(&minor_stat, &client_name);
-+    gss_release_buffer(&minor_stat, &service_name);
-     return(&ret);
- }
- 
--- 
-2.7.0.rc3
-
diff --git a/gnu/packages/patches/mit-krb5-init-context-null-spnego.patch 
b/gnu/packages/patches/mit-krb5-init-context-null-spnego.patch
deleted file mode 100644
index 195db38..0000000
--- a/gnu/packages/patches/mit-krb5-init-context-null-spnego.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Copied from Fedora.
-http://pkgs.fedoraproject.org/cgit/rpms/krb5.git/tree/krb5-init_context_null_spnego.patch?h=f22
-
-From 3beb564cea3d219efcf71682b6576cad548c2d23 Mon Sep 17 00:00:00 2001
-From: Simo Sorce <address@hidden>
-Date: Tue, 5 Jan 2016 12:11:59 -0500
-Subject: [PATCH] Check internal context on init context errors
-
-If the mechanism deletes the internal context handle on error, the
-mechglue must do the same with the union context, to avoid crashes if
-the application calls other functions with this invalid union context.
-
address@hidden: edit commit message and code comment]
-
-ticket: 8337 (new)
-target_version: 1.14-next
-target_version: 1.13-next
-tags: pullup
----
- src/lib/gssapi/mechglue/g_init_sec_context.c | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/src/lib/gssapi/mechglue/g_init_sec_context.c 
b/src/lib/gssapi/mechglue/g_init_sec_context.c
-index aaae767..9f154b8 100644
---- a/src/lib/gssapi/mechglue/g_init_sec_context.c
-+++ b/src/lib/gssapi/mechglue/g_init_sec_context.c
-@@ -224,12 +224,15 @@ OM_uint32 *              time_rec;
- 
-     if (status != GSS_S_COMPLETE && status != GSS_S_CONTINUE_NEEDED) {
-       /*
--       * the spec says (the preferred) method is to delete all
--       * context info on the first call to init, and on all
--       * subsequent calls make the caller responsible for
--       * calling gss_delete_sec_context
-+       * The spec says the preferred method is to delete all context info on
-+       * the first call to init, and on all subsequent calls make the caller
-+       * responsible for calling gss_delete_sec_context.  However, if the
-+       * mechanism decided to delete the internal context, we should also
-+       * delete the union context.
-        */
-       map_error(minor_status, mech);
-+      if (union_ctx_id->internal_ctx_id == GSS_C_NO_CONTEXT)
-+          *context_handle = GSS_C_NO_CONTEXT;
-       if (*context_handle == GSS_C_NO_CONTEXT) {
-           free(union_ctx_id->mech_type->elements);
-           free(union_ctx_id->mech_type);
--- 
-2.6.4
-



reply via email to

[Prev in Thread] Current Thread [Next in Thread]