[SCM] Samba Shared Repository - branch master updated
Günther Deschner
gd at samba.org
Fri Jul 19 09:54:02 MDT 2013
The branch, master has been updated
via 44429f9 s3-printing: avoid KRB5CCNAME overwrite in printer publishing (Bug #7444).
from bb21fc5 Add torture tests to raw.eas to check sending Windows invalid names in the middle of an EA list.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 44429f948b72e7bcf968da492592c57864f211c7
Author: Günther Deschner <gd at samba.org>
Date: Fri Jul 19 15:10:05 2013 +0200
s3-printing: avoid KRB5CCNAME overwrite in printer publishing (Bug #7444).
Guenther
Signed-off-by: Günther Deschner <gd at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
Autobuild-User(master): Günther Deschner <gd at samba.org>
Autobuild-Date(master): Fri Jul 19 17:53:08 CEST 2013 on sn-devel-104
-----------------------------------------------------------------------
Summary of changes:
source3/printing/nt_printing_ads.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/printing/nt_printing_ads.c b/source3/printing/nt_printing_ads.c
index dcd31b7..5d5f564 100644
--- a/source3/printing/nt_printing_ads.c
+++ b/source3/printing/nt_printing_ads.c
@@ -417,6 +417,7 @@ WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
ADS_STATUS ads_rc;
ADS_STRUCT *ads = NULL;
WERROR win_rc;
+ char *old_krb5ccname = NULL;
sinfo2 = talloc_zero(mem_ctx, struct spoolss_SetPrinterInfo2);
if (!sinfo2) {
@@ -454,6 +455,7 @@ WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
win_rc = WERR_SERVER_UNAVAILABLE;
goto done;
}
+ old_krb5ccname = getenv(KRB5_ENV_CCNAME);
setenv(KRB5_ENV_CCNAME, "MEMORY:prtpub_cache", 1);
SAFE_FREE(ads->auth.password);
ads->auth.password = secrets_fetch_machine_password(lp_workgroup(),
@@ -479,6 +481,11 @@ WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
done:
ads_destroy(&ads);
+ ads_kdestroy("MEMORY:prtpub_cache");
+ unsetenv(KRB5_ENV_CCNAME);
+ if (old_krb5ccname) {
+ setenv(KRB5_ENV_CCNAME, old_krb5ccname, 0);
+ }
return win_rc;
}
@@ -493,6 +500,7 @@ WERROR check_published_printers(struct messaging_context *msg_ctx)
struct spoolss_PrinterInfo2 *pinfo2;
NTSTATUS status;
WERROR result;
+ char *old_krb5ccname = NULL;
tmp_ctx = talloc_new(NULL);
if (!tmp_ctx) return WERR_NOMEM;
@@ -502,6 +510,7 @@ WERROR check_published_printers(struct messaging_context *msg_ctx)
DEBUG(3, ("ads_init() failed\n"));
return WERR_SERVER_UNAVAILABLE;
}
+ old_krb5ccname = getenv(KRB5_ENV_CCNAME);
setenv(KRB5_ENV_CCNAME, "MEMORY:prtpub_cache", 1);
SAFE_FREE(ads->auth.password);
ads->auth.password = secrets_fetch_machine_password(lp_workgroup(),
@@ -546,6 +555,10 @@ WERROR check_published_printers(struct messaging_context *msg_ctx)
done:
ads_destroy(&ads);
ads_kdestroy("MEMORY:prtpub_cache");
+ unsetenv(KRB5_ENV_CCNAME);
+ if (old_krb5ccname) {
+ setenv(KRB5_ENV_CCNAME, old_krb5ccname, 0);
+ }
talloc_free(tmp_ctx);
return result;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list