Rainer: > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > On Behalf Of Rainer Gerhards > Sent: Thursday, November 24, 2005 1:25 AM > To: Balazs Scheidler > Cc: [EMAIL PROTECTED] > Subject: RE: [Syslog] New direction and proposed charter > > > On Thu, 2005-11-24 at 09:36 +0100, Rainer Gerhards wrote: > > > Anton: > > > > > So I wonder if it wouldn't be wiser to accept that CLR here > > and disallow > > > NUL. After all, I can not see a valid use case for it > > either... (in the > > > sample you provided it honestly believe the sender should > > not send a NUL > > > octet but a "\u0000" string). > > > > > > > \u0000 is a NUL octet at least in its canonical encoding. > > OK, looks like I need to dig up the ASCII table. My fault I didn't do it > in the first place. > > Anston's sample was > > ...MyApp pid123 MALFORMED_INPUT: Bad input received from client: > [aaa\u0000] > > For simplicity, let me strip the rest and just look at that part > > \u0000 > > I think the sender of the sample message should not encode it as > > NUL (0x00) > > but instead as > > 0x5c-0x75-0x30-0x30-0x30-0x30 (\-u-0-0-0-0) > > Encoding it as NUL in an otherwise human-readable message makes no sense > to me. >
>From the perspective of formatting a piece of device internal raw data into an outgoing syslog message and considering the CPU cycles needed to encode a NULL character into some other form to keep the whole MSG intact, I would say prepend the length of MSG (or say, add a fixed 4 digits byte length of the MSG between SD-IDs and MSG) will be much easier for the sender. With this, I think the new IETF syslog compliant receiver should also have easier time fetching in the complete MSG, regardless it's a plain text, XML-formated, or even binary data. [** side note: a fixed 4 digit MSG length can handle up to 9999 bytes. Big enough for foreseeable future. Also, the first MSG can be appended with other feature specific information before it gets sent out. And hence updating the final MSG length can be easier.] As to what will happen to the old syslog receivers receiving the message will NULL character? The message will probably be cut short right at reading the NULL character as you have explained. And I don't think there will be a good compromised solution for it. At the sender side, the overhead in checking for a NULL character in any of the incoming raw message and encode it to other form is just not practical. I would rather not have to pay that overhead if possible. Besides, if mandated, you will be limiting how MSG is to be used. I would say it should be sufficient to just explicitly point out the danger of having the NUL in the MSG part in the new IETF syslog protocol. And you can be kind to add some suggestions as to how the syslog message initial sending device can choose to do to handle this situation themselves. Vendors should make their own decisions on this issue. With this caveat, we get to keep the flexibility of having the MSG part in plain text, or in binary for the IETF syslog protocol. It's tradeoff for WG to debate. > I am questioning if there is any legitimate case where an actual NUL > needs to be part of MSG. > > > UTF-8 allows > > the same character to be encoded in multiple ways, see a > > description on > > the encoding format: > > > > http://www1.tip.nl/~t876506/utf8tbl.html > > > > And I think it would be wise to require the canonical encoding to be > > used and treat all other encodings of the same characters as errors. > > this is a large can of worms, lot's of security problems arised from > > this issue. (see the IIS problems couple of years ago) > > "Shortest possible form" thanksfully is already required in > syslog-protocol-15. > > Rainer > > _______________________________________________ > Syslog mailing list > Syslog@lists.ietf.org > https://www1.ietf.org/mailman/listinfo/syslog _______________________________________________ Syslog mailing list Syslog@lists.ietf.org https://www1.ietf.org/mailman/listinfo/syslog