diff options
author | Bruno Haible <bruno@clisp.org> | 2010-10-15 02:07:02 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2011-06-07 23:38:47 +0200 |
commit | 085a53c79ab62bcc35bb4377d9a03f90b3f9f41f (patch) | |
tree | c94fd43a688cc58f712ff3b3a2d776089698b062 /gettext-runtime/libasprintf | |
parent | 1d4c46994e1248b63aae1af4ca1b79320b19d4af (diff) | |
download | external_gettext-085a53c79ab62bcc35bb4377d9a03f90b3f9f41f.zip external_gettext-085a53c79ab62bcc35bb4377d9a03f90b3f9f41f.tar.gz external_gettext-085a53c79ab62bcc35bb4377d9a03f90b3f9f41f.tar.bz2 |
vasnprintf: Don't set errno to 0.
Diffstat (limited to 'gettext-runtime/libasprintf')
-rw-r--r-- | gettext-runtime/libasprintf/ChangeLog | 7 | ||||
-rw-r--r-- | gettext-runtime/libasprintf/vasnprintf.c | 4 |
2 files changed, 11 insertions, 0 deletions
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 <bruno@clisp.org> + + 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 <sherpya@netfarm.it>. + 2010-06-04 Bruno Haible <bruno@clisp.org> * 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 } |