<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>146585</bug_id>
          
          <creation_ts>2007-06-09 14:36:30 +0000</creation_ts>
          <short_desc>[PATCH] SASL Authentication fails if another client of sasl is loaded</short_desc>
          <delta_ts>2007-09-14 12:17:01 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>10</classification_id>
          <classification>Unmaintained</classification>
          <product>kio</product>
          <component>imap</component>
          <version>unspecified</version>
          <rep_platform>Ubuntu</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Andreas Roth">aroth</reporter>
          <assigned_to name="kdepim bugs">pim-bugs-null</assigned_to>
          
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>530785</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Roth">aroth</who>
    <bug_when>2007-06-09 14:36:30 +0000</bug_when>
    <thetext>Version:            (using KDE KDE 3.5.7)
Installed from:    Ubuntu Packages
OS:                Linux

This error occurs, if another module (kio slave) already loaded the libsasl library and initialized the library. 
 
In smtp.cc the function sasl_client_init is called with a set of callback functions. If another user of libsasl already called this function before and specified a different set of callbacks (or NULL), the second set of callbacks is ignored an the first set is used. 
In the kio_imap the callbacks must be specified to work with SASL mechanism which require callbacks to get username and password. But if the callbacks aren&apos;t installed because someone before has specified another set of callbacks all SASL mechanism which require callbacks aren&apos;t working (which left me with only three mechanisms Clear-Text, EXTERNAL and ANONYMOUS). 
As a result i can only retrieve my mail using the Clear-Text authentification. 
 
I think this issue also occurs on every other kioslave which uses the libsasl for authentication (see also https://bugs.kde.org/show_bug.cgi?id=146582)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530787</commentid>
    <comment_count>1</comment_count>
      <attachid>20819</attachid>
    <who name="Andreas Roth">aroth</who>
    <bug_when>2007-06-09 14:37:38 +0000</bug_when>
    <thetext>Created attachment 20819
Fix callbacks for IMAP and SIEVE kioslave 

The patch fixes the SASL callbacks for the IMAP and SIEVE kioslaves. It simply 

 specifies the callbacks for every connection (in sasl_client_new) instead of 
 using the callbacks specified through sasl_client_init.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531413</commentid>
    <comment_count>2</comment_count>
    <who name="Allen Winter">winter</who>
    <bug_when>2007-06-13 17:05:44 +0000</bug_when>
    <thetext>SVN commit 674932 by winterz:

Fix bug &quot;SASL Authentication fails if another client of sasl is loaded&quot;
Patch provided by Andreas. Thanks!

BUGS: 146585


 M  +13 -3     imap4/imapparser.cc  
 M  +28 -28    sieve/sieve.cpp  


--- branches/KDE/3.5/kdepim/kioslaves/imap4/imapparser.cc #674931:674932
@@ -45,6 +45,16 @@
 extern &quot;C&quot; {
 #include &lt;sasl/sasl.h&gt;
 }
+static sasl_callback_t callbacks[] = {
+  { SASL_CB_ECHOPROMPT, NULL, NULL },
+  { SASL_CB_NOECHOPROMPT, NULL, NULL },
+  { SASL_CB_GETREALM, NULL, NULL },
+  { SASL_CB_USER, NULL, NULL },
+  { SASL_CB_AUTHNAME, NULL, NULL },
+  { SASL_CB_PASS, NULL, NULL },
+  { SASL_CB_CANON_USER, NULL, NULL },
+  { SASL_CB_LIST_END, NULL, NULL }
+};
 #endif
 
 #include &lt;qregexp.h&gt;
@@ -222,7 +232,7 @@
   result = sasl_client_new( &quot;imap&quot;, /* FIXME: with cyrus-imapd, even imaps&apos; digest-uri
                                        must be &apos;imap&apos;. I don&apos;t know if it&apos;s good or bad. */
                        aFQDN.latin1(),
-                       0, 0, 0, 0, &amp;conn );
+                       0, 0, callbacks, 0, &amp;conn );
 
   if ( result != SASL_OK ) {
     kdDebug(7116) &lt;&lt; &quot;sasl_client_new failed with: &quot; &lt;&lt; result &lt;&lt; endl;
@@ -1800,7 +1810,7 @@
     QString temp = (*it);
 
     int pt = temp.find (&apos;/&apos;);
-    if (pt &gt; 0) 
+    if (pt &gt; 0)
     {
       if (temp.findRev (&apos;&quot;&apos;, pt) == -1 || temp.find(&apos;&quot;&apos;, pt) == -1)
       {
@@ -1832,7 +1842,7 @@
     if (!_box.isEmpty () &amp;&amp; _box[_box.length () - 1] == &apos;/&apos;)
       _box.truncate(_box.length() - 1);
   }
-  kdDebug(7116) &lt;&lt; &quot;URL: box= &quot; &lt;&lt; _box &lt;&lt; &quot;, section= &quot; &lt;&lt; _section &lt;&lt; &quot;, type= &quot; 
+  kdDebug(7116) &lt;&lt; &quot;URL: box= &quot; &lt;&lt; _box &lt;&lt; &quot;, section= &quot; &lt;&lt; _section &lt;&lt; &quot;, type= &quot;
     &lt;&lt; _type &lt;&lt; &quot;, uid= &quot; &lt;&lt; _uid &lt;&lt; &quot;, validity= &quot; &lt;&lt; _validity &lt;&lt; &quot;, info= &quot; &lt;&lt; _info &lt;&lt; endl;
 }
 
--- branches/KDE/3.5/kdepim/kioslaves/sieve/sieve.cpp #674931:674932
@@ -14,7 +14,7 @@
  *                                                                         *
  ***************************************************************************/
 
-/** 
+/**
  * Portions adapted from the SMTP ioslave.
  * Copyright (c) 2000, 2001 Alex Zepeda &lt;jazepeda@pacbell.net&gt;
  * Copyright (c) 2001 Michael H</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20819</attachid>
            <date>2007-06-09 14:37:38 +0000</date>
            <delta_ts>2007-06-09 14:37:38 +0000</delta_ts>
            <desc>Fix callbacks for IMAP and SIEVE kioslave </desc>
            <filename>kdepim_sasl_callbacks.patch</filename>
            <type>text/plain</type>
            <size>2700</size>
            <attacher name="Andreas Roth">aroth</attacher>
            
              <data encoding="base64">ZGlmZiAtdXIga2RlcGltLTMuNS43Lm9yZy9raW9zbGF2ZXMvaW1hcDQvaW1hcHBhcnNlci5jYyBr
ZGVwaW0tMy41Ljcva2lvc2xhdmVzL2ltYXA0L2ltYXBwYXJzZXIuY2MKLS0tIGtkZXBpbS0zLjUu
Ny5vcmcva2lvc2xhdmVzL2ltYXA0L2ltYXBwYXJzZXIuY2MJMjAwNy0wNS0xNCAwOTo1NDozOS4w
MDAwMDAwMDAgKzAyMDAKKysrIGtkZXBpbS0zLjUuNy9raW9zbGF2ZXMvaW1hcDQvaW1hcHBhcnNl
ci5jYwkyMDA3LTA2LTA5IDEzOjQ1OjAyLjAwMDAwMDAwMCArMDIwMApAQCAtNTksNiArNTksMTkg
QEAKICNpbmNsdWRlIDxrYXNjaWlzdHJpY21wLmg+CiAjaW5jbHVkZSA8a2FzY2lpc3RyaW5ndG9v
bHMuaD4KIAorI2lmZGVmIEhBVkVfTElCU0FTTDIKK3N0YXRpYyBzYXNsX2NhbGxiYWNrX3QgY2xp
ZW50X2NhbGxiYWNrc1tdID0geworICAgIHsgU0FTTF9DQl9FQ0hPUFJPTVBULCBOVUxMLCBOVUxM
IH0sCisgICAgeyBTQVNMX0NCX05PRUNIT1BST01QVCwgTlVMTCwgTlVMTCB9LAorICAgIHsgU0FT
TF9DQl9HRVRSRUFMTSwgTlVMTCwgTlVMTCB9LAorICAgIHsgU0FTTF9DQl9VU0VSLCBOVUxMLCBO
VUxMIH0sCisgICAgeyBTQVNMX0NCX0FVVEhOQU1FLCBOVUxMLCBOVUxMIH0sCisgICAgeyBTQVNM
X0NCX1BBU1MsIE5VTEwsIE5VTEwgfSwKKyAgICB7IFNBU0xfQ0JfQ0FOT05fVVNFUiwgTlVMTCwg
TlVMTCB9LAorICAgIHsgU0FTTF9DQl9MSVNUX0VORCwgTlVMTCwgTlVMTCB9Cit9OworI2VuZGlm
CisKIGltYXBQYXJzZXI6OmltYXBQYXJzZXIgKCkKIHsKICAgc2VudFF1ZXVlLnNldEF1dG9EZWxl
dGUgKGZhbHNlKTsKQEAgLTIyMiw3ICsyMzUsNyBAQAogICByZXN1bHQgPSBzYXNsX2NsaWVudF9u
ZXcoICJpbWFwIiwgLyogRklYTUU6IHdpdGggY3lydXMtaW1hcGQsIGV2ZW4gaW1hcHMnIGRpZ2Vz
dC11cmkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgYmUgJ2lt
YXAnLiBJIGRvbid0IGtub3cgaWYgaXQncyBnb29kIG9yIGJhZC4gKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgYUZRRE4ubGF0aW4xKCksCi0gICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAs
IDAsICZjb25uICk7CisgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIGNsaWVudF9jYWxsYmFj
a3MsIDAsICZjb25uICk7CiAKICAgaWYgKCByZXN1bHQgIT0gU0FTTF9PSyApIHsKICAgICBrZERl
YnVnKDcxMTYpIDw8ICJzYXNsX2NsaWVudF9uZXcgZmFpbGVkIHdpdGg6ICIgPDwgcmVzdWx0IDw8
IGVuZGw7CmRpZmYgLXVyIGtkZXBpbS0zLjUuNy5vcmcva2lvc2xhdmVzL3NpZXZlL3NpZXZlLmNw
cCBrZGVwaW0tMy41Ljcva2lvc2xhdmVzL3NpZXZlL3NpZXZlLmNwcAotLS0ga2RlcGltLTMuNS43
Lm9yZy9raW9zbGF2ZXMvc2lldmUvc2lldmUuY3BwCTIwMDctMDUtMTQgMDk6NTQ6MzkuMDAwMDAw
MDAwICswMjAwCisrKyBrZGVwaW0tMy41Ljcva2lvc2xhdmVzL3NpZXZlL3NpZXZlLmNwcAkyMDA3
LTA2LTA5IDEzOjQ2OjAxLjAwMDAwMDAwMCArMDIwMApAQCAtMTcsNyArMTcsNyBAQAogLyoqIAog
ICogUG9ydGlvbnMgYWRhcHRlZCBmcm9tIHRoZSBTTVRQIGlvc2xhdmUuCiAgKiBDb3B5cmlnaHQg
KGMpIDIwMDAsIDIwMDEgQWxleCBaZXBlZGEgPGphemVwZWRhQHBhY2JlbGwubmV0PgotICogQ29w
eXJpZ2h0IChjKSAyMDAxIE1pY2hhZWwgSORja2VsIDxNaWNoYWVsQEhhZWNrZWwuTmV0PgorICog
Q29weXJpZ2h0IChjKSAyMDAxIE1pY2hhZWwgSO+/vWNrZWwgPE1pY2hhZWxASGFlY2tlbC5OZXQ+
CiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFBvbGljeTogdGhlIGZ1bmN0aW9uIHdo
ZXJlIHRoZSBlcnJvciBvY2N1cnMgY2FsbHMgZXJyb3IoKS4gQSByZXN1bHQgb2YKQEAgLTczLDYg
KzczLDE3IEBACiAgICAgeyBTQVNMX0NCX0xJU1RfRU5ELCBOVUxMLCBOVUxMIH0KIH07CiAKK3N0
YXRpYyBzYXNsX2NhbGxiYWNrX3QgY2xpZW50X2NhbGxiYWNrc1tdID0geworICAgIHsgU0FTTF9D
Ql9FQ0hPUFJPTVBULCBOVUxMLCBOVUxMIH0sCisgICAgeyBTQVNMX0NCX05PRUNIT1BST01QVCwg
TlVMTCwgTlVMTCB9LAorICAgIHsgU0FTTF9DQl9HRVRSRUFMTSwgTlVMTCwgTlVMTCB9LAorICAg
IHsgU0FTTF9DQl9VU0VSLCBOVUxMLCBOVUxMIH0sCisgICAgeyBTQVNMX0NCX0FVVEhOQU1FLCBO
VUxMLCBOVUxMIH0sCisgICAgeyBTQVNMX0NCX1BBU1MsIE5VTEwsIE5VTEwgfSwKKyAgICB7IFNB
U0xfQ0JfQ0FOT05fVVNFUiwgTlVMTCwgTlVMTCB9LAorICAgIHsgU0FTTF9DQl9MSVNUX0VORCwg
TlVMTCwgTlVMTCB9Cit9OworCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IFNJRVZFX0RFRkFV
TFRfUkVDSUVWRV9CVUZGRVIgPSA1MTI7CiAKIHVzaW5nIG5hbWVzcGFjZSBLSU87CkBAIC05OTMs
NyArMTAwNCw3IEBACiAKICAgcmVzdWx0ID0gc2FzbF9jbGllbnRfbmV3KCAic2lldmUiLAogICAg
ICAgICAgICAgICAgICAgICAgICBtX3NTZXJ2ZXIubGF0aW4xKCksCi0gICAgICAgICAgICAgICAg
ICAgICAgIDAsIDAsIE5VTEwsIDAsICZjb25uICk7CisgICAgICAgICAgICAgICAgICAgICAgIDAs
IDAsIGNsaWVudF9jYWxsYmFja3MsIDAsICZjb25uICk7CiAKICAgaWYgKCByZXN1bHQgIT0gU0FT
TF9PSyApIHsKICAgICBrc0RlYnVnKCkgPDwgInNhc2xfY2xpZW50X25ldyBmYWlsZWQgd2l0aDog
IiA8PCByZXN1bHQgPDwgZW5kbDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>