author | Vladimir Marek <Vladimir.Marek@oracle.com> |
Fri, 17 Jan 2014 17:43:13 +0100 | |
changeset 1663 | d64772b1eb67 |
permissions | -rw-r--r-- |
1663
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
1 |
The problem has been reported to [email protected] by mail but there was no |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
2 |
response. For now it is safer to disable line wrapping than trying to fix |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
3 |
various buffer overflows in the code. |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
4 |
|
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
5 |
--- psutils/pserror.c 2014-01-23 15:47:09.375709690 +0100 |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
6 |
+++ psutils/pserror.c 2014-01-23 15:46:57.742698912 +0100 |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
7 |
@@ -12,111 +12,31 @@ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
8 |
#include "patchlev.h" |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
9 |
|
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
10 |
#include <string.h> |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
11 |
+#include <stdio.h> |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
12 |
+#include <stdarg.h> |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
13 |
|
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
14 |
/* Message functions; there is a single are varargs functions for messages, |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
15 |
warnings, and errors sent to stderr. If called with the flags MESSAGE_EXIT |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
16 |
set, the routine does not return */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
17 |
- |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
18 |
-#define MAX_MESSAGE 256 /* maximum formatted message length */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
19 |
-#define MAX_FORMAT 16 /* maximum format length */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
20 |
-#define MAX_COLUMN 78 /* maximum column to print upto */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
21 |
- |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
22 |
void message(int flags, char *format, ...) |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
23 |
{ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
24 |
va_list args ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
25 |
- static column = 0 ; /* current screen column for message wrap */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
26 |
- char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
27 |
- char *bufptr = msgbuf ; /* message buffer pointer */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
28 |
|
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
29 |
- if ( (flags & MESSAGE_NL) && column != 0 ) { /* new line if not already */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
30 |
+ if ( flags & MESSAGE_NL ) { /* new line if not already */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
31 |
putc('\n', stderr) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
32 |
- column = 0 ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
33 |
} |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
34 |
- |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
35 |
+ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
36 |
if ( flags & MESSAGE_PROGRAM ) { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
37 |
- strcpy(bufptr, program) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
38 |
- bufptr += strlen(program) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
39 |
- *bufptr++ = ':' ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
40 |
- *bufptr++ = ' ' ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
41 |
+ fprintf (stderr, "%s: ", program); |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
42 |
} |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
43 |
|
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
44 |
va_start(args, format) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
45 |
- if ( format != NULL ) { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
46 |
- char c ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
47 |
- while ( (c = *format++) != '\0' ) { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
48 |
- if (c == '%') { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
49 |
- int done, longform, index ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
50 |
- char fmtbuf[MAX_FORMAT] ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
51 |
- longform = index = 0 ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
52 |
- fmtbuf[index++] = c ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
53 |
- do { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
54 |
- done = 1 ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
55 |
- fmtbuf[index++] = c = *format++ ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
56 |
- fmtbuf[index] = '\0' ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
57 |
- switch (c) { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
58 |
- case '%': |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
59 |
- *bufptr++ = '%' ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
60 |
- case '\0': |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
61 |
- break ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
62 |
- case 'e': case 'E': case 'f': case 'g': case 'G': |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
63 |
- { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
64 |
- double d = va_arg(args, double) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
65 |
- sprintf(bufptr, fmtbuf, d) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
66 |
- bufptr += strlen(bufptr) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
67 |
- } |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
68 |
- break ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
69 |
- case 'c': case 'd': case 'i': case 'o': |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
70 |
- case 'p': case 'u': case 'x': case 'X': |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
71 |
- if ( longform ) { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
72 |
- long l = va_arg(args, long) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
73 |
- sprintf(bufptr, fmtbuf, l) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
74 |
- } else { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
75 |
- int i = va_arg(args, int) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
76 |
- sprintf(bufptr, fmtbuf, i) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
77 |
- } |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
78 |
- bufptr += strlen(bufptr) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
79 |
- break ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
80 |
- case 's': |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
81 |
- { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
82 |
- char *s = va_arg(args, char *) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
83 |
- sprintf(bufptr, fmtbuf, s) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
84 |
- bufptr += strlen(bufptr) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
85 |
- } |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
86 |
- break ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
87 |
- case 'l': |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
88 |
- longform = 1 ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
89 |
- /* FALLTHRU */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
90 |
- default: |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
91 |
- done = 0 ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
92 |
- } |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
93 |
- } while ( !done ) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
94 |
- } else if ( c == '\n' ) { /* write out message so far and reset column */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
95 |
- int len = bufptr - msgbuf ; /* length of current message */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
96 |
- *bufptr++ = '\n' ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
97 |
- *bufptr = '\0' ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
98 |
- if ( column + len > MAX_COLUMN && column > 0 ) { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
99 |
- putc('\n', stderr) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
100 |
- column = 0 ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
101 |
- } |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
102 |
- fputs(bufptr = msgbuf, stderr) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
103 |
- column = 0 ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
104 |
- } else |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
105 |
- *bufptr++ = c ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
106 |
- } |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
107 |
- *bufptr = '\0' ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
108 |
- { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
109 |
- int len = bufptr - msgbuf ; /* length of current message */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
110 |
- if ( column + len > MAX_COLUMN && column > 0 ) { |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
111 |
- putc('\n', stderr) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
112 |
- column = 0 ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
113 |
- } |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
114 |
- fputs(msgbuf, stderr) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
115 |
- column += len ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
116 |
- } |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
117 |
- fflush(stderr) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
118 |
- } |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
119 |
+ if ( format != NULL ) |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
120 |
+ vfprintf(stderr, format, args); |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
121 |
va_end(args) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
122 |
|
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
123 |
+ fflush(stderr); |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
124 |
+ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
125 |
if ( flags & MESSAGE_EXIT ) /* don't return to program */ |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
126 |
exit(1) ; |
d64772b1eb67
18035101 problem in UTILITY/PSUTILS
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff
changeset
|
127 |
} |