Article View: comp.mail.sendmail
Article #2651Re: Does alias lookup iterate?
From: Bruce Lilly
Date: Sat, 09 Jan 1993 19:44
Date: Sat, 09 Jan 1993 19:44
65 lines
3886 bytes
3886 bytes
In article <1ik8l9INN90r@early-bird.think.com>, posted to comp.mail.sendmail, ellozy@farber.dfci.harvard.edu (Mohamed Ellozy) wrote: > >The following patch is taken from IDA, I am not sure why they try null-terminated strings but decided to include that part. This is a context diff from a previously unmodiffied alias.c from berkeley 5.65, as usual your mileage may differ! The aliases database is a specific case of a general dbm database, provided that sendmail is compiled with some sort of database support (else it is implemented in the sybmol table). Older versions of sendmail provide a redundant '\0' at the end of the key and datum strings. It is redundant because the length field is sufficient to determine the end of the string. (using the length field also permits a '\0' character to be stored in the database) Obviously, database size can be reduced by not including the redundant '\0' character at the end of each key and datum. Checking for the '\0'-terminated string is done for two reasons: 1) if the database was generated with an old sendmail binary, that's the way it was stored (i.e. it is done for backward compatibility). 2) some implementations of NIS (a.k.a. YP) support programs fail if the redundant '\0' is not there (i.e. for compatibility with backward programs 1/2 :-). If you use any of these support programs, either compile sendmail to pad (all) databases with '\0', or scream at your supplier to provide fixes for their programs. By the way, it appears that sendmail version 6.x provides the option of '\0'-terminated strings on a per-database basis, as well as a hack to force the '\0'-termination if the database is an NIS aliases database. Both verbatim and lower-cased versions of the key are used to support both case-sensitive and case-insensitive lookups (previously everything was supposed to be case-insensitive[!]). Using all lower-case letters in the aliases file will result in a case-insensitive match, while any upper-case letters in the aliases file must be matched by a corresponding upper-case character. E.g. if the aliases file has the lines postmaster:root MAILER-DAEMON:root then "postmaster" will be matched in a case-insensitive manner[*], but "MAILER-DAEMON" will only match "MAILER-DAEMON", not "mailer-daemon". All 4 cases which result from using the verbatim string or the '\0'-terminated extension, and the given case or lower-cased string are tested by the UIUC/IDA code. All database lookups use the length field to determine the extent of the string (note that there might still be problems when sprintf'ing such strings using "%s", that is, strings containing an embedded '\0' will be prematurely truncated (that's a printf() "feature")). ! this was achieved by converting all strings to lower-case before storage, and by converting all keys to lower-case before an attempted retrieval. It was therefore impossible to distinguish "Foo" from "foo", and there were some problems with systems that support user names which can contain upper-case characters. * i.e. "Postmaster", "PoStmAster", etc. will all match (as required for the reserved local-part "postmaster"). P.S. some people may find articles easier to read if long lines are folded. -- Bruce Lilly ...uupsi!monymsys!sonyd1!blilly!bruce
Technical Details
Message-ID:
<1993Jan9.194432.20633@blilly.uucp>Path:
arc1-ca.pugleaf.net!sparky!uunet!psinntp!monymsys!sonyd1.broadcast.sony.com!blilly.uucp!bruceReferences:
<1hsohvINNleo@agate.berkeley.edu> <1huuhfINNjfj@network.ucsd.edu> <1ik8l9INN90r@early-bird.think.com>Show Full Headers
Complete Article Headers
Newsgroups: comp.mail.sendmail Path: arc1-ca.pugleaf.net!sparky!uunet!psinntp!monymsys!sonyd1.broadcast.sony.com!blilly.uucp!bruce From: bruce@blilly.uucp (Bruce Lilly) Subject: Re: Does alias lookup iterate? Keywords: sendmail alias References: <1hsohvINNleo@agate.berkeley.edu> <1huuhfINNjfj@network.ucsd.edu> <1ik8l9INN90r@early-bird.think.com> Organization: Bruce Lilly Date: Sat, 9 Jan 93 19:44:32 GMT Message-ID: <1993Jan9.194432.20633@blilly.uucp> Reply-To: lilb@sony.compuserve.com (Bruce Lilly) Distribution: usa Lines: 65