diff options
author | recht <recht> | 2004-07-08 21:11:25 +0000 |
---|---|---|
committer | recht <recht> | 2004-07-08 21:11:25 +0000 |
commit | d2954dc14d011928519c47b68c95b543edd24e9d (patch) | |
tree | 0e92018f27f235c5b1342d8bbe46d9272980be2f /security/cyrus-sasl2/patches | |
parent | 708c774589ef69ac08870271eabd0be202df3c38 (diff) | |
download | pkgsrc-d2954dc14d011928519c47b68c95b543edd24e9d.tar.gz |
Use a better fix from ASG CVS the GSSAPI problems.
patch-ap now includes the updates between rev 1.84 and rev 1.90
modulo the support for passing of GSSAPI credentials.
Patch provided by Jukka Salmi in PR 26184
Bump PKGREVISION to 3 for the new fix.
Diffstat (limited to 'security/cyrus-sasl2/patches')
-rw-r--r-- | security/cyrus-sasl2/patches/patch-ap | 51 |
1 files changed, 45 insertions, 6 deletions
diff --git a/security/cyrus-sasl2/patches/patch-ap b/security/cyrus-sasl2/patches/patch-ap index 4f0116b1ab5..d5d9bd4043a 100644 --- a/security/cyrus-sasl2/patches/patch-ap +++ b/security/cyrus-sasl2/patches/patch-ap @@ -1,13 +1,52 @@ -$NetBSD: patch-ap,v 1.1 2004/07/05 16:49:18 recht Exp $ +$NetBSD: patch-ap,v 1.2 2004/07/08 21:11:26 recht Exp $ ---- plugins/gssapi.c.orig 2004-02-06 18:23:51.000000000 +0100 -+++ plugins/gssapi.c 2004-07-05 18:41:39.000000000 +0200 -@@ -1419,7 +1419,7 @@ +--- plugins/gssapi.c.orig Fri Feb 6 18:23:51 2004 ++++ plugins/gssapi.c Wed Jul 7 12:09:07 2004 +@@ -990,8 +990,14 @@ + GSS_C_QOP_DEFAULT, + (OM_uint32) oparams->maxoutbuf, + &max_input); +- +- oparams->maxoutbuf -= (max_input - oparams->maxoutbuf); ++ ++ if(max_input > oparams->maxoutbuf) { ++ /* Heimdal appears to get this wrong */ ++ oparams->maxoutbuf -= (max_input - oparams->maxoutbuf); ++ } else { ++ /* This code is actually correct */ ++ oparams->maxoutbuf = max_input; ++ } + } + + gss_release_buffer(&min_stat, output_token); +@@ -1134,6 +1140,7 @@ + gss_buffer_t input_token, output_token; + gss_buffer_desc real_input_token, real_output_token; + OM_uint32 maj_stat = 0, min_stat = 0; ++ OM_uint32 max_input; + gss_buffer_desc name_token; + int ret; + OM_uint32 req_flags, out_req_flags; +@@ -1418,8 +1425,20 @@ + (((unsigned char *) output_token->value)[3] << 0); if(oparams->mech_ssf) { - /* xxx probably too large */ +- /* xxx probably too large */ - oparams->maxoutbuf -= 50; -+ oparams->maxoutbuf -= 256; ++ maj_stat = gss_wrap_size_limit( &min_stat, ++ text->gss_ctx, ++ 1, ++ GSS_C_QOP_DEFAULT, ++ (OM_uint32) oparams->maxoutbuf, ++ &max_input); ++ ++ if(max_input > oparams->maxoutbuf) { ++ /* Heimdal appears to get this wrong */ ++ oparams->maxoutbuf -= (max_input - oparams->maxoutbuf); ++ } else { ++ /* This code is actually correct */ ++ oparams->maxoutbuf = max_input; ++ } } gss_release_buffer(&min_stat, output_token); |