On Mon, Sep 05, 2016 at 07:07:18PM -0500, Derek Martin wrote:
> On Mon, Sep 05, 2016 at 10:32:40AM -0500, Derek Martin wrote:
> > Is strfcpy() widely available?
>
> Ah, now I see that strfcpy() is a Mutt-specific macro that intends to
> make strncpy() safer. I was actually thinking of strlcpy(), which is
> equivalent to Mutt's strfcpy(); but it does not matter. ALL of these
> functions suffer from the same affliction: If dest is too small, they
> all silently lose data on copy.
>
> There are approximately 360 such calls to strfcpy() in Mut's code; if
> any of these calls are used in such a way that data loss is sensitive,
> it could result in a security exploit. It would require an audit.
>
> Maybe there's an easier way to deal with that problem that's still
> reasonable:
>
> #include <assert.h>
>
> int safe_strncpy(char *dest, char *src, size_t size)
> {
> return snprintf(dest, size, "%s", src);
Quick question, mutt has snprintf.c which implements snprintf and
vsnprintf. Now that mutt requires a C99 compiler, is this file (and
checks in configure) still needed?