From 085a53c79ab62bcc35bb4377d9a03f90b3f9f41f Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 15 Oct 2010 02:07:02 +0200 Subject: [PATCH] vasnprintf: Don't set errno to 0. --- gettext-runtime/intl/ChangeLog | 7 +++++++ gettext-runtime/intl/vasnprintf.c | 4 ++++ gettext-runtime/libasprintf/ChangeLog | 7 +++++++ gettext-runtime/libasprintf/vasnprintf.c | 4 ++++ 4 files changed, 22 insertions(+) diff --git a/gettext-runtime/intl/ChangeLog b/gettext-runtime/intl/ChangeLog index 8a8a5b60e..728f38560 100644 --- a/gettext-runtime/intl/ChangeLog +++ b/gettext-runtime/intl/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-09 Bruno Haible Avoid relocwrapper link errors due to gnulib replacement functions. diff --git a/gettext-runtime/intl/vasnprintf.c b/gettext-runtime/intl/vasnprintf.c index 8a07ca6e7..3dd8b3f30 100644 --- a/gettext-runtime/intl/vasnprintf.c +++ b/gettext-runtime/intl/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 } diff --git a/gettext-runtime/libasprintf/ChangeLog b/gettext-runtime/libasprintf/ChangeLog index e69830915..7a13fdfa3 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 8a07ca6e7..3dd8b3f30 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 } -- 2.47.2