projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
logf: Work around OSF/1 5.1 bug.
[gnulib.git]
/
lib
/
vfprintf.c
diff --git
a/lib/vfprintf.c
b/lib/vfprintf.c
index
82117e3
..
bc1bec9
100644
(file)
--- a/
lib/vfprintf.c
+++ b/
lib/vfprintf.c
@@
-1,5
+1,5
@@
/* Formatted output to a stream.
/* Formatted output to a stream.
- Copyright (C) 2004, 2006-20
07
Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006-20
12
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-29,11
+29,6
@@
#include "fseterr.h"
#include "vasnprintf.h"
#include "fseterr.h"
#include "vasnprintf.h"
-/* Some systems, like OSF/1 4.0 and Woe32, don't have EOVERFLOW. */
-#ifndef EOVERFLOW
-# define EOVERFLOW E2BIG
-#endif
-
/* Print formatted output to the stream FP.
Return string length of formatted string. On error, return a negative
value. */
/* Print formatted output to the stream FP.
Return string length of formatted string. On error, return a negative
value. */
@@
-57,14
+52,17
@@
vfprintf (FILE *fp, const char *format, va_list args)
if (fwrite (output, 1, len, fp) < len)
{
if (output != buf)
if (fwrite (output, 1, len, fp) < len)
{
if (output != buf)
- {
- int saved_errno = errno;
- free (output);
- errno = saved_errno;
- }
+
{
+
int saved_errno = errno;
+
free (output);
+
errno = saved_errno;
+
}
return -1;
}
return -1;
}
+ if (output != buf)
+ free (output);
+
if (len > INT_MAX)
{
errno = EOVERFLOW;
if (len > INT_MAX)
{
errno = EOVERFLOW;