Collin Funk wrote:
> I noticed that verror/error call va_end twice. Once in error_tail and
> then again in the calling function.

Thanks!

Yes, it is wrong to invoke
  va_end (args);
inside error_tail, because ISO C 23 § 7.16.1 says (emphasis is mine):

  "Each invocation of the va_start and va_copy macros shall be matched
   by a corresponding invocation of the va_end macro *in the same function*."

Likewise in ISO C 17 § 7.16.1, ISO C 11 § 7.16.1, and ISO C 99 § 7.15.1.

AFAICS, glibc has this bug already since 2001. Can you please file a glibc
bug for it?

Bruno




Reply via email to