From 085a53c79ab62bcc35bb4377d9a03f90b3f9f41f Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 15 Oct 2010 02:07:02 +0200 Subject: vasnprintf: Don't set errno to 0. --- gettext-runtime/libasprintf/ChangeLog | 7 +++++++ gettext-runtime/libasprintf/vasnprintf.c | 4 ++++ 2 files changed, 11 insertions(+) (limited to 'gettext-runtime/libasprintf') diff --git a/gettext-runtime/libasprintf/ChangeLog b/gettext-runtime/libasprintf/ChangeLog index e698309..7a13fdf 100644 --- a/gettext-runtime/libasprintf/ChangeLog +++ b/gettext-runtime/libasprintf/ChangeLog @@ -1,3 +1,10 @@ +2010-10-14 Bruno Haible + + vasnprintf: Don't set errno to 0. + * vasnprintf.c (VASNPRINTF): Save and restore errno around the block + that sets it to 0. + Reported by Gianluigi Tiesi . + 2010-06-04 Bruno Haible * gettext-0.18.1 released. diff --git a/gettext-runtime/libasprintf/vasnprintf.c b/gettext-runtime/libasprintf/vasnprintf.c index 8a07ca6..3dd8b3f 100644 --- a/gettext-runtime/libasprintf/vasnprintf.c +++ b/gettext-runtime/libasprintf/vasnprintf.c @@ -4598,6 +4598,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, TCHAR_T *fbp; unsigned int prefix_count; int prefixes[2] IF_LINT (= { 0 }); + int orig_errno; #if !USE_SNPRINTF size_t tmp_length; TCHAR_T tmpbuf[700]; @@ -4901,6 +4902,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, *(TCHAR_T *) (result + length) = '\0'; #endif + orig_errno = errno; + for (;;) { int count = -1; @@ -5499,6 +5502,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, length += count; break; } + errno = orig_errno; #undef pad_ourselves #undef prec_ourselves } -- cgit v1.1