diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/auth/credentials/credentials_krb5.c | 27 | ||||
-rwxr-xr-x | source4/heimdal_build/asn1_deps.pl | 3 | ||||
-rwxr-xr-x | source4/heimdal_build/et_deps.pl | 3 | ||||
-rw-r--r-- | source4/lib/events/events_aio.c | 1 |
4 files changed, 26 insertions, 8 deletions
diff --git a/source4/auth/credentials/credentials_krb5.c b/source4/auth/credentials/credentials_krb5.c index 3bc1764448..b9207ab601 100644 --- a/source4/auth/credentials/credentials_krb5.c +++ b/source4/auth/credentials/credentials_krb5.c @@ -379,19 +379,34 @@ _PUBLIC_ int cli_credentials_get_client_gss_creds(struct cli_credentials *cred, maj_stat = gss_krb5_import_cred(&min_stat, ccache->ccache, NULL, NULL, &gcc->creds); if (maj_stat) { + talloc_free(gcc); if (min_stat) { ret = min_stat; } else { ret = EINVAL; } + return ret; } - if (ret == 0) { - cred->client_gss_creds_obtained = cred->ccache_obtained; - talloc_set_destructor(gcc, free_gssapi_creds); - cred->client_gss_creds = gcc; - *_gcc = gcc; + + /* don't force GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG */ + maj_stat = gss_set_cred_option(&min_stat, gcc->creds, + GSS_KRB5_CRED_NO_CI_FLAGS_X, + GSS_C_NO_BUFFER); + if (maj_stat) { + talloc_free(gcc); + if (min_stat) { + ret = min_stat; + } else { + ret = EINVAL; + } + return ret; } - return ret; + + cred->client_gss_creds_obtained = cred->ccache_obtained; + talloc_set_destructor(gcc, free_gssapi_creds); + cred->client_gss_creds = gcc; + *_gcc = gcc; + return 0; } /** diff --git a/source4/heimdal_build/asn1_deps.pl b/source4/heimdal_build/asn1_deps.pl index 6121781760..80334328fc 100755 --- a/source4/heimdal_build/asn1_deps.pl +++ b/source4/heimdal_build/asn1_deps.pl @@ -6,6 +6,7 @@ # GPL use File::Basename; +use Cwd 'getcwd'; my $file = shift; my $prefix = shift; @@ -31,7 +32,7 @@ my $header = "$dirname/$prefix.h"; print "$header: \$(heimdalsrcdir)/$file \$(ASN1C)\n"; print "\t\@echo \"Compiling ASN1 file \$(heimdalsrcdir)/$file\"\n"; -print "\t\@\$(heimdalbuildsrcdir)/asn1_compile_wrapper.sh \$(builddir) $dirname \$(ASN1C) \$(abspath \$(heimdalsrcdir)/$file) $prefix $options\n\n"; +print "\t\@\$(heimdalbuildsrcdir)/asn1_compile_wrapper.sh \$(builddir) $dirname \$(ASN1C) " . getcwd() . "/\$(heimdalsrcdir)/$file $prefix $options\n\n"; open(IN,"heimdal/$file") or die("Can't open heimdal/$file: $!"); my @lines = <IN>; diff --git a/source4/heimdal_build/et_deps.pl b/source4/heimdal_build/et_deps.pl index 6a0485bb54..5deabe82b5 100755 --- a/source4/heimdal_build/et_deps.pl +++ b/source4/heimdal_build/et_deps.pl @@ -1,6 +1,7 @@ #!/usr/bin/perl use File::Basename; +use Cwd 'getcwd'; my $file = shift; my $dirname = shift; @@ -10,7 +11,7 @@ my $header = "$dirname/$basename"; $header =~ s/\.et$/.h/; my $source = "$dirname/$basename"; $source =~ s/\.et$/.c/; print "$header $source: \$(heimdalsrcdir)/$file \$(ET_COMPILER)\n"; print "\t\@echo \"Compiling error table $file\"\n"; -print "\t\@\$(heimdalbuildsrcdir)/et_compile_wrapper.sh \$(builddir) $dirname \$(ET_COMPILER) \$(abspath \$(heimdalsrcdir)/$file) $source\n\n"; +print "\t\@\$(heimdalbuildsrcdir)/et_compile_wrapper.sh \$(builddir) $dirname \$(ET_COMPILER) " . getcwd() . "/\$(heimdalsrcdir)/$file $source\n\n"; print "clean:: \n"; print "\t\@rm -f $header $source\n\n"; diff --git a/source4/lib/events/events_aio.c b/source4/lib/events/events_aio.c index 933ce26bf6..e30213acbc 100644 --- a/source4/lib/events/events_aio.c +++ b/source4/lib/events/events_aio.c @@ -34,6 +34,7 @@ #include "replace.h" #include "events.h" #include "events_internal.h" +#include "events_util.h" #include <sys/epoll.h> #include <libaio.h> |