summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-crypt/mit-krb5/files')
-rw-r--r--app-crypt/mit-krb5/files/CVE-2010-1322.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/app-crypt/mit-krb5/files/CVE-2010-1322.patch b/app-crypt/mit-krb5/files/CVE-2010-1322.patch
new file mode 100644
index 000000000000..0de12e62f3e1
--- /dev/null
+++ b/app-crypt/mit-krb5/files/CVE-2010-1322.patch
@@ -0,0 +1,33 @@
+diff --git a/src/kdc/kdc_authdata.c b/src/kdc/kdc_authdata.c
+index b5de64d..cc44e29 100644
+--- a/src/kdc/kdc_authdata.c
++++ b/src/kdc/kdc_authdata.c
+@@ -495,7 +495,7 @@ merge_authdata (krb5_context context,
+ krb5_boolean copy,
+ krb5_boolean ignore_kdc_issued)
+ {
+- size_t i, nadata = 0;
++ size_t i, j, nadata = 0;
+ krb5_authdata **authdata = *out_authdata;
+
+ if (in_authdata == NULL || in_authdata[0] == NULL)
+@@ -529,16 +529,16 @@ merge_authdata (krb5_context context,
+ in_authdata = tmp;
+ }
+
+- for (i = 0; in_authdata[i] != NULL; i++) {
++ for (i = 0, j = 0; in_authdata[i] != NULL; i++) {
+ if (ignore_kdc_issued &&
+ is_kdc_issued_authdatum(context, in_authdata[i], 0)) {
+ free(in_authdata[i]->contents);
+ free(in_authdata[i]);
+ } else
+- authdata[nadata + i] = in_authdata[i];
++ authdata[nadata + j++] = in_authdata[i];
+ }
+
+- authdata[nadata + i] = NULL;
++ authdata[nadata + j] = NULL;
+
+ free(in_authdata);
+