[exim-dev] [Bug 2501] fix missing parentheses in heimdal_gss…

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: admin
Fecha:  
A: exim-dev
Asunto: [exim-dev] [Bug 2501] fix missing parentheses in heimdal_gssapi.c
https://bugs.exim.org/show_bug.cgi?id=2501

--- Comment #8 from unki@??? ---
Ahh, it's reproducible when the following authenticator-name contains an
underscore-character (_) and/or the word "cram" standing alone:

Fails:

  1 gssapi_auth:$
  2    driver = heimdal_gssapi$
  3    public_name = GSSAPI$
  4    server_keytab = /etc/exim4/krb5.keytab$
  5 $
  6 cram_md5:$
  7    driver = cram_md5$
  8    public_name = CRAM-MD5$


Fails too:

  1 gssapi_auth:$
  2    driver = heimdal_gssapi$
  3    public_name = GSSAPI$
  4    server_keytab = /etc/exim4/krb5.keytab$
  5 $
  6 cram:$
  7    driver = cram_md5$
  8    public_name = CRAM-MD5$




Works:

  1 gssapi_auth:$
  2    driver = heimdal_gssapi$
  3    public_name = GSSAPI$
  4    server_keytab = /etc/exim4/krb5.keytab$
  5 $
  6 cramba:$
  7    driver = cram_md5$
  8    public_name = CRAM-MD5$





Fails:

  1 gssapi_auth:$
  2    driver = heimdal_gssapi$
  3    public_name = GSSAPI$
  4    server_keytab = /etc/exim4/krb5.keytab$
  5 $
  6 cram_foobar:$
  7    driver = cram_md5$
  8    public_name = CRAM-MD5$



Fails too:

  1 gssapi_auth:$
  2    driver = heimdal_gssapi$
  3    public_name = GSSAPI$
  4    server_keytab = /etc/exim4/krb5.keytab$
  5 $
  6 foo_bar:$
  7    driver = cram_md5$
  8    public_name = CRAM-MD5$



So something seems to confuse the parser after it has handled the GSSAPI
authenticator.

The characters that then lead to extra-characters-follow-driver seems to be
just random memory content.

***>>> after line ''
***>>> got line '= heimdal_gssapi'
***>>> got line '= GSSAPI'
***>>> got line '= /etc/exim4/krb5.keytab'
***>>> got line ':'
***>>> before line '����~'
***>>> after line '����~'
***>>> found extra characters '����~'
2019-12-23 14:30:51 Exim configuration error in line 904 of
/var/lib/exim4/config.autogenerated.tmp:
extra characters follow driver name cram_md5






Index: exim4-4.93/src/readconf.c
===================================================================
--- exim4-4.93.orig/src/readconf.c
+++ exim4-4.93/src/readconf.c
@@ -3781,6 +3781,8 @@ while ((buffer = get_config_line()) != N

s = readconf_readname(name, sizeof(name), buffer);

+ fprintf(stderr, "***>>> got line '%s'\n", s);
+
/* Handle macro definition, first finishing off the initialization of the
previous driver, if any. */

@@ -3837,8 +3839,13 @@ while ((buffer = get_config_line()) != N

     /* Check nothing more on this line, then do the next loop iteration. */


+    fprintf(stderr, "***>>> before line '%s'\n", s);
     while (isspace(*s)) s++;
-    if (*s != 0) extra_chars_error(s, US"driver name ", name, US"");
+    fprintf(stderr, "***>>> after line '%s'\n", s);
+    if (*s != 0) {
+        fprintf(stderr, "***>>> found extra characters '%s'\n", s);
+        extra_chars_error(s, US"driver name ", name, US"");
+    }
     continue;
     }


--
You are receiving this mail because:
You are on the CC list for the bug.