Victor Duchovni:
> > + * Copyright (c) 2010 Apple Inc. All rights reserved.
> > + * 
> > + * Redistribution and use in source and binary forms, with or without  
> > + * modification, are permitted provided that the following conditions  
> > + * are met:
> > + * 1.  Redistributions of source code must retain the above copyright  
> > + * notice, this list of conditions and the following disclaimer.
> > [...]
> 
> I am not a lawyer, but it it not obvious that the license terms are
> compatible with the Postfix license. You can and should assert Apple
> copyright, but I think you need to release the code under the Postfix
> (not the proposed 3-clause BSD-like) license. Wietse?

I see this as just another disclaimer/license file that needs to
be added to the list of files that distributors will need to
propagate along with Postfix.

> > +#define    LOWALPHA        "abcdefghijklmnopqrstuvwxyz"    /* RFC 1738 */
...
> > +#define    DATETIME_CHARS  DIGIT".+-:TZ"                   /* RFC 3339 */
> 
> This looks ugly, Postfix already has a _UCHAR_ macro that is too similar
> to your UCHAR, and runs with a clean environment that specifies LANG=C,
> so using <ctype.h> is IMHO a lot cleaner than all these macros that
> duplicate ctype.h functionality. One or special lists of metacharacters
> would be fine, but this seems excessive.

I think that we can't really ask these people to rewrite the code
to make it satisfy a "spec" that exists only in the minds of you
and me.

I quickly looked over the BURL code and it looks like this will
follow a path similar to the adoption of IPv6 and TLS:  add missing
checks and missing assertions to make things bullet-proof, and
adjust the over-all code structure where necessary. I understand
that compatible with the cover letter for this patch.

Adopting this code will take time, and I can't promise that such
time will be available before the 2.8 release.   As this code is
sitting in a security critical path, the code will have to be vetted
with great care. I have a reputation to lose.

In the mean time, the authors may want to enforce strict sanity
checks on IMAP server output such as the reply payload length, and
also make sure that their vstream_limit code behaves when reads
are alternated with writes (either refuse to allow read/write/read,
or enforce the limit as promised).

Speaking of Postfix's reliance of ctype macros, this was perfectly
OK in ancient times, but it is becoming a liability, because handling
of SMTP and related protocols cannot not be sensitive to locale
settings. I introduced the default setting LANG=C as a workaround
to buy time for a more structural solution that replaces ctype.

One question I have is why would anyone send an email message that
is 100% identical to a message that is already sitting in an IMAP
store? It would seem that this is useful only when forwarding mail
verbatim. Is this worth the effort to adopt and forever maintain
another 1500 lines of code?

Another question is how this would integrate with Milter support
which currently provides access to a wide range of extensions
for filtering, mail authentication, and so on.

        Wietse

Reply via email to