packages: samba/samba-client-upcall-buildfix.patch (NEW) - new, fix client/...

adamg adamg at pld-linux.org
Mon Nov 9 01:17:47 CET 2009


Author: adamg                        Date: Mon Nov  9 00:17:47 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- new, fix client/upcall build (http://bugs.gentoo.org/show_bug.cgi?id=291360)

---- Files affected:
packages/samba:
   samba-client-upcall-buildfix.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/samba/samba-client-upcall-buildfix.patch
diff -u /dev/null packages/samba/samba-client-upcall-buildfix.patch:1.1
--- /dev/null	Mon Nov  9 01:17:47 2009
+++ packages/samba/samba-client-upcall-buildfix.patch	Mon Nov  9 01:17:42 2009
@@ -0,0 +1,57 @@
+http://bugs.gentoo.org/show_bug.cgi?id=291360
+
+--- a/source3/client/cifs.upcall.c	2009-10-29 08:47:16.000000000 +0100
++++ b/source3/client/cifs.upcall.c	2009-11-03 10:52:37.000000000 +0100
+@@ -31,6 +31,9 @@
+ 
+ #include "cifs_spnego.h"
+ 
++// defined in heimdal appl/dceutils/k5dce.h
++#define KRB5_TC_OPENCLOSE              0x00000001
++
+ #define	CIFS_DEFAULT_KRB5_DIR		"/tmp"
+ #define	CIFS_DEFAULT_KRB5_PREFIX	"krb5cc_"
+ 
+@@ -45,14 +48,24 @@
+ } sectype_t;
+ 
+ static inline int
+-k5_data_equal(krb5_data d1, krb5_data d2, unsigned int length)
++k5_realm_equal(Realm d1, Realm d2)
++{
++	int len1 = length_Realm(&d1);
++	int len2 = length_Realm(&d2);
++
++	return (len1 == len2 &&
++		memcmp(d1, d2, len1) == 0);
++}
++
++static inline int
++k5_name_equal(PrincipalName d1, krb5_data d2, unsigned int length)
+ {
+ 	if (!length)
+-		length = d1.length;
++		length = d1.name_string.len;
+ 
+-	return (d1.length == length &&
+-		d1.length == d2.length &&
+-		memcmp(d1.data, d2.data, length) == 0);
++	return (d1.name_string.len == length &&
++		d1.name_string.len == d2.length &&
++		memcmp(d1.name_string.val, d2.data, length) == 0);
+ 
+ }
+ 
+@@ -94,9 +107,9 @@
+ 	}
+ 
+ 	while (!credtime && !krb5_cc_next_cred(context, ccache, &cur, &creds)) {
+-		if (k5_data_equal(creds.server->realm, principal->realm, 0) &&
+-		    k5_data_equal(creds.server->data[0], tgt, tgt.length) &&
+-		    k5_data_equal(creds.server->data[1], principal->realm, 0) &&
++
++	 	if (k5_realm_equal(creds.server->realm, principal->realm) &&
++		    k5_name_equal(creds.server->name, tgt, tgt.length) &&
+ 		    creds.times.endtime > time(NULL))
+ 			credtime = creds.times.endtime;
+                 krb5_free_cred_contents(context, &creds);
================================================================


More information about the pld-cvs-commit mailing list