parent
							
								
									a0277fd396
								
							
						
					
					
						commit
						4c8ed38666
					
				
							
								
								
									
										67
									
								
								Don-t-error-on-invalid-enctypes-in-keytab.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								Don-t-error-on-invalid-enctypes-in-keytab.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,67 @@ | |||||||
|  | From 56f59b21814cca0b68e1506d5d8bd15636812c0f Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Robbie Harwood <rharwood@redhat.com> | ||||||
|  | Date: Wed, 10 Jul 2019 17:10:16 -0400 | ||||||
|  | Subject: [PATCH] Don't error on invalid enctypes in keytab | ||||||
|  | 
 | ||||||
|  | krb5_ktfile_get_entry() used krb5_c_enctype_compare() to compare | ||||||
|  | enctypes, in order to share keys between single-DES enctypes.  As | ||||||
|  | key-sharing between enctypes is no longer done and single-DES support | ||||||
|  | has been removed, use a simple equality test to match the enctype. | ||||||
|  | This fixes a bug where krb5_kt_get_entry() would error out if the | ||||||
|  | keytab contained any entries with invalid enctypes (include single-DES | ||||||
|  | entries, after commit fb2dada5eb89c4cd4e39dedd6dbb7dbd5e94f8b8) even | ||||||
|  | if a matching entry is found. | ||||||
|  | 
 | ||||||
|  | [ghudson@mit.edu: rewrote commit message] | ||||||
|  | 
 | ||||||
|  | ticket: 8808 | ||||||
|  | (cherry picked from commit 38be1a0a31a6104cdf8c8d72828905775f6d6636) | ||||||
|  | ---
 | ||||||
|  |  src/lib/krb5/keytab/kt_file.c | 27 +++++---------------------- | ||||||
|  |  1 file changed, 5 insertions(+), 22 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/src/lib/krb5/keytab/kt_file.c b/src/lib/krb5/keytab/kt_file.c
 | ||||||
|  | index 21c80d419..df2530a45 100644
 | ||||||
|  | --- a/src/lib/krb5/keytab/kt_file.c
 | ||||||
|  | +++ b/src/lib/krb5/keytab/kt_file.c
 | ||||||
|  | @@ -289,7 +289,6 @@ krb5_ktfile_get_entry(krb5_context context, krb5_keytab id,
 | ||||||
|  |      krb5_keytab_entry cur_entry, new_entry; | ||||||
|  |      krb5_error_code kerror = 0; | ||||||
|  |      int found_wrong_kvno = 0; | ||||||
|  | -    krb5_boolean similar;
 | ||||||
|  |      int was_open; | ||||||
|  |      char *princname; | ||||||
|  |   | ||||||
|  | @@ -336,27 +335,11 @@ krb5_ktfile_get_entry(krb5_context context, krb5_keytab id,
 | ||||||
|  |              continue; | ||||||
|  |          } | ||||||
|  |   | ||||||
|  | -        /* if the enctype is not ignored and doesn't match, free new_entry
 | ||||||
|  | -           and continue to the next */
 | ||||||
|  | -
 | ||||||
|  | -        if (enctype != IGNORE_ENCTYPE) {
 | ||||||
|  | -            if ((kerror = krb5_c_enctype_compare(context, enctype,
 | ||||||
|  | -                                                 new_entry.key.enctype,
 | ||||||
|  | -                                                 &similar))) {
 | ||||||
|  | -                krb5_kt_free_entry(context, &new_entry);
 | ||||||
|  | -                break;
 | ||||||
|  | -            }
 | ||||||
|  | -
 | ||||||
|  | -            if (!similar) {
 | ||||||
|  | -                krb5_kt_free_entry(context, &new_entry);
 | ||||||
|  | -                continue;
 | ||||||
|  | -            }
 | ||||||
|  | -            /*
 | ||||||
|  | -             * Coerce the enctype of the output keyblock in case we
 | ||||||
|  | -             * got an inexact match on the enctype.
 | ||||||
|  | -             */
 | ||||||
|  | -            new_entry.key.enctype = enctype;
 | ||||||
|  | -
 | ||||||
|  | +        /* If the enctype is not ignored and doesn't match, free new_entry and
 | ||||||
|  | +           continue to the next. */
 | ||||||
|  | +        if (enctype != IGNORE_ENCTYPE && enctype != new_entry.key.enctype) {
 | ||||||
|  | +            krb5_kt_free_entry(context, &new_entry);
 | ||||||
|  | +            continue;
 | ||||||
|  |          } | ||||||
|  |   | ||||||
|  |          if (kvno == IGNORE_VNO || new_entry.vno == IGNORE_VNO) { | ||||||
| @ -18,7 +18,7 @@ Summary: The Kerberos network authentication system | |||||||
| Name: krb5 | Name: krb5 | ||||||
| Version: 1.17 | Version: 1.17 | ||||||
| # for prerelease, should be e.g., 0.% {prerelease}.1% { ?dist } (without spaces) | # for prerelease, should be e.g., 0.% {prerelease}.1% { ?dist } (without spaces) | ||||||
| Release: 34%{?dist} | Release: 35%{?dist} | ||||||
| 
 | 
 | ||||||
| # lookaside-cached sources; two downloads and a build artifact | # lookaside-cached sources; two downloads and a build artifact | ||||||
| Source0: https://web.mit.edu/kerberos/dist/krb5/1.17/krb5-%{version}%{prerelease}.tar.gz | Source0: https://web.mit.edu/kerberos/dist/krb5/1.17/krb5-%{version}%{prerelease}.tar.gz | ||||||
| @ -111,6 +111,7 @@ Patch148: Remove-PKINIT-draft-9-support.patch | |||||||
| Patch149: Remove-PKINIT-draft-9-ASN.1-code-and-types.patch | Patch149: Remove-PKINIT-draft-9-ASN.1-code-and-types.patch | ||||||
| Patch150: Remove-3des-support.patch | Patch150: Remove-3des-support.patch | ||||||
| Patch151: Remove-now-unused-checksum-functions.patch | Patch151: Remove-now-unused-checksum-functions.patch | ||||||
|  | Patch152: Don-t-error-on-invalid-enctypes-in-keytab.patch | ||||||
| 
 | 
 | ||||||
| License: MIT | License: MIT | ||||||
| URL: https://web.mit.edu/kerberos/www/ | URL: https://web.mit.edu/kerberos/www/ | ||||||
| @ -720,6 +721,10 @@ exit 0 | |||||||
| %{_libdir}/libkadm5srv_mit.so.* | %{_libdir}/libkadm5srv_mit.so.* | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Jul 15 2019 Robbie Harwood <rharwood@redhat.com> - 1.17-35 | ||||||
|  | - Don't error on invalid enctypes in keytab | ||||||
|  | - Resolves: #1724380 | ||||||
|  | 
 | ||||||
| * Tue Jul 02 2019 Robbie Harwood <rharwood@redhat.com> - 1.17-34 | * Tue Jul 02 2019 Robbie Harwood <rharwood@redhat.com> - 1.17-34 | ||||||
| - Remove now-unused checksum functions | - Remove now-unused checksum functions | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user