diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-05-29 21:41:28 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-05-29 21:41:28 +0000 |
commit | 4ef7d3a2de3df27dde80a64987202f10aebfe925 (patch) | |
tree | c34efb08a5db806cdee923dd81fffdd8c46f0cdd /libbb | |
parent | fe3e1776ada6bf8cf39e08f4974bd6cc6d29175d (diff) | |
download | busybox-w32-4ef7d3a2de3df27dde80a64987202f10aebfe925.tar.gz busybox-w32-4ef7d3a2de3df27dde80a64987202f10aebfe925.tar.bz2 busybox-w32-4ef7d3a2de3df27dde80a64987202f10aebfe925.zip |
verror_msg: don't printf(NULL)
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/verror_msg.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libbb/verror_msg.c b/libbb/verror_msg.c index 526b9d36c..082e7bf3c 100644 --- a/libbb/verror_msg.c +++ b/libbb/verror_msg.c | |||
@@ -20,6 +20,9 @@ void bb_verror_msg(const char *s, va_list p, const char* strerr) | |||
20 | va_list p2; | 20 | va_list p2; |
21 | va_copy(p2, p); | 21 | va_copy(p2, p); |
22 | 22 | ||
23 | if (!s) /* nomsg[_and_die] uses NULL fmt */ | ||
24 | s = ""; /* some libc don't like printf(NULL) */ | ||
25 | |||
23 | if (logmode & LOGMODE_STDIO) { | 26 | if (logmode & LOGMODE_STDIO) { |
24 | fflush(stdout); | 27 | fflush(stdout); |
25 | fprintf(stderr, "%s: ", applet_name); | 28 | fprintf(stderr, "%s: ", applet_name); |
@@ -28,7 +31,7 @@ void bb_verror_msg(const char *s, va_list p, const char* strerr) | |||
28 | fputs(msg_eol, stderr); | 31 | fputs(msg_eol, stderr); |
29 | else | 32 | else |
30 | fprintf(stderr, "%s%s%s", | 33 | fprintf(stderr, "%s%s%s", |
31 | s ? ": " : "", | 34 | s[0] ? ": " : "", |
32 | strerr, msg_eol); | 35 | strerr, msg_eol); |
33 | } | 36 | } |
34 | if (ENABLE_FEATURE_SYSLOG && (logmode & LOGMODE_SYSLOG)) { | 37 | if (ENABLE_FEATURE_SYSLOG && (logmode & LOGMODE_SYSLOG)) { |
@@ -36,8 +39,10 @@ void bb_verror_msg(const char *s, va_list p, const char* strerr) | |||
36 | vsyslog(LOG_ERR, s, p2); | 39 | vsyslog(LOG_ERR, s, p2); |
37 | else { | 40 | else { |
38 | char *msg; | 41 | char *msg; |
39 | if (vasprintf(&msg, s, p2) < 0) | 42 | if (vasprintf(&msg, s, p2) < 0) { |
40 | bb_error_msg_and_die(bb_msg_memory_exhausted); | 43 | fprintf(stderr, "%s: %s\n", applet_name, bb_msg_memory_exhausted); |
44 | xfunc_die(); | ||
45 | } | ||
41 | syslog(LOG_ERR, "%s: %s", msg, strerr); | 46 | syslog(LOG_ERR, "%s: %s", msg, strerr); |
42 | free(msg); | 47 | free(msg); |
43 | } | 48 | } |