Hallo Jörg.

Joerg Schilling wrote in
 <20201211114507.zccfs%sch...@schily.net>:
 |"Steffen Nurpmeso via austin-group-l at The Open Group" <austin-group-l@\
 |opengroup.org> wrote:
 |> Joerg Schilling wrote in
 |>  <20201210004945.i3n8e%sch...@schily.net>:
 |>|Steffen Nurpmeso <stef...@sdaoden.eu> wrote:
 |>|> this is an iconv(3)-related error that was fixed in later version
 |>|> of the mailer you use.  The very error came up on the ML this
 ..
 |>|You are correct,
 |> 
 |> Yep -- unfortunately.
 |
 |I meanwhile discovered (from a hint in another mail in this thread \
 |that I canot 
 |answer) that the trigger may be an embedded nul character.
 |
 |The s-nail error message was:
 |
 | "Failed to prepare composed message"

So you could not fully read it .. and tried to respond to the
"half-seen" message nonetheless?
Regardless, it is fixed in the version that will become obsolete
tomorrow.

 |and the mail display (before I tried to answer) stopped before the \
 |line that
 |contained that nul character. Again saving the mail to a file and using \
 |iconv(1)
 |did result in "useful" converted output.
 |
 |There seem to be two things that need to be handled in a way that never \
 |causes
 |a mail (regardless of the content) to prevent reading or answering.
 |
 |-     EILSEQ should not result in shortened mails or errors that abort
 | work completely for that mail.
 |
 |-     Characters that cause EILSEQ should be transformed into "something"
 | in the output that at least is a hint for that problem.

Ah, it is not that alone, people are playing games and inject
invalid bytes in base64 streams and such.  We handle these cases
well for a remarkable long time, when viewed in context.
It is a pity that the software is not yet at a point where we can
simply log such occurrances though, even though we can join
successive error messages in the style known from syslog.  (At the
beginning we did, but it could have caused hundreds of log
messages.)

 |I am not sure whether that helps, but I remember from my experiences from 
 |mkisofs that iconv() from glibc has a bug and ignores *outbytesleft. This
 |frequently results in reading or writing too much data.

In the software i maintain i found references to problems
regarding character sets and iconv(3).  I have seen _very_ strange
names like (that is phantasie) western-subset-european-10646 or
something like that (that was on UnixWare).  How could anyone deal
with that portably?

Decades ago i was hm foolishly prowd of my
way of generating character set names, because we normalized them
splitting at boundaries which included numbers (so utf-8 and utf8
would end up as one entry "utf 8" to test).  One decade ago the
Python people did not like it (and also separate(d) with
hyphen-minus not whitespace which i found strange.

Today (what a ridiculous regress!) i have to write code like

 static char const * const names[] = {"csASCII", "cp367", "IBM367", "us",
       "ISO646-US", "ISO_646.irv:1991", "ANSI_X3.4-1986", "iso-ir-6",
       "ANSI_X3.4-1968", "ASCII", "US-ASCII"};

to find out whether anything is actually defined in US-ASCII,
because no official interfaces exist which give someone a hint.

Ciao,

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

Reply via email to