[continued from previous message]
+ if (GSS_ERROR(maj_stat)) {
+- if (name_without_realm.value)
+- params->utils->free(name_without_realm.value);
+-
+- if (name_token.value) {
+- GSS_LOCK_MUTEX(params->utils);
+- gss_release_buffer(&min_stat, &name_token);
+- GSS_UNLOCK_MUTEX(params->utils);
+- }
+ if (without) {
+ GSS_LOCK_MUTEX(params->utils);
+ gss_release_name(&min_stat, &without);
+@@ -829,8 +821,13 @@
+ if (strchr((char *) name_token.value, (int) '@') != NULL) {
+ /* NOTE: libc malloc, as it is freed below by a gssapi internal
+ * function! */
+- name_without_realm.value = malloc(strlen(name_token.value)+1);
++ name_without_realm.value = params->utils->malloc(strlen(name_token.value)+1);
+ if (name_without_realm.value == NULL) {
++ if (name_token.value) {
++ GSS_LOCK_MUTEX(params->utils);
++ gss_release_buffer(&min_stat, &name_token);
++ GSS_UNLOCK_MUTEX(params->utils);
++ }
+ MEMERROR(text->utils);
+ return SASL_NOMEM;
+ }
+@@ -860,11 +857,6 @@
+ if (name_token.value) {
+ GSS_LOCK_MUTEX(params->utils);
+ gss_release_buffer(&min_stat, &name_token);
+- GSS_UNLOCK_MUTEX(params->utils);
+- }
+- if (without) {
+- GSS_LOCK_MUTEX(params->utils);
+- gss_release_name(&min_stat, &without);
+ GSS_UNLOCK_MUTEX(params->utils);
+ }
+ SETERROR(text->utils, "GSSAPI Failure");
diff -urN cyrus-sasl2-2.1.19/debian/patches/20_2371_sasl_upstream_cvs.diff nmu-work/debian/patches/20_2371_sasl_upstream_cvs.diff
--- cyrus-sasl2-2.1.19/debian/patches/20_2371_sasl_upstream_cvs.diff 1969-12-31 21:00:00.000000000 -0300
+++ nmu-work/debian/patches/20_2371_sasl_upstream_cvs.diff 2004-08-14 11:29:31.000000000 -0300
@@ -0,0 +1,28 @@
+---------------------
+PatchSet 2371
+Date: 2004/07/21 14:39:49
+Author: rjs3
+Branch: HEAD
+Tag: (none)
+Log:
+updated
+
+Members:
+ ChangeLog:1.687->1.688
+
+Index: cyrus-sasl-2.1.19/ChangeLog +===================================================================
+RCS file: /cvs/src/sasl/ChangeLog,v
+retrieving revision 1.687
+retrieving revision 1.688
+diff -u -r1.687 -r1.688
+--- cyrus-sasl-2.1.19/ChangeLog 15 Jul 2004 18:01:57 -0000 1.687 ++++ cyrus-sasl-2.1.19/ChangeLog 21 Jul 2004 14:39:49 -0000 1.688 +@@ -1,3 +1,7 @@
++2004-07-21 Rob Siemborski <
[email protected]>
++ * plugins/gssapi.c: Memory management cleanup
++ (Alexey Melnikov <
[email protected]>)
++
+ 2004-07-15 Rob Siemborski <
[email protected]>
+ * configure.in, plugins/gssapi.c: Wrap a