Fix belated review comments on syslog change.

Bug: 14292866
Change-Id: I3cd92084cb55b5673f6ba62d51952941b79deb51
diff --git a/libc/bionic/libc_logging.cpp b/libc/bionic/libc_logging.cpp
index d6fa1db..b57e242 100644
--- a/libc/bionic/libc_logging.cpp
+++ b/libc/bionic/libc_logging.cpp
@@ -230,6 +230,7 @@
 /* Perform formatted output to an output target 'o' */
 template <typename Out>
 static void out_vformat(Out& o, const char* format, va_list args) {
+    int caller_errno = errno;
     int nn = 0;
 
     for (;;) {
@@ -380,7 +381,7 @@
             buffer[1] = '\0';
         } else if (c == 'm') {
             // syslog-like %m for strerror(errno).
-            str = strerror(errno);
+            str = strerror(caller_errno);
         } else {
             __assert(__FILE__, __LINE__, "conversion specifier unsupported");
         }
diff --git a/libc/bionic/syslog.cpp b/libc/bionic/syslog.cpp
index 7e153eb..29f892a 100644
--- a/libc/bionic/syslog.cpp
+++ b/libc/bionic/syslog.cpp
@@ -14,9 +14,8 @@
  * limitations under the License.
  */
 
-#include <syslog.h>
-
 #include <stdlib.h>
+#include <syslog.h>
 
 #include "private/libc_logging.h"
 
@@ -24,6 +23,7 @@
 static int syslog_priority_mask = 0xff;
 
 void closelog() {
+  syslog_log_tag = NULL;
 }
 
 void openlog(const char* log_tag, int /*options*/, int /*facility*/) {
@@ -61,7 +61,7 @@
   // What's our Android log priority?
   priority &= LOG_PRIMASK;
   int android_log_priority;
-  if (priority < LOG_ERR) {
+  if (priority <= LOG_ERR) {
     android_log_priority = ANDROID_LOG_ERROR;
   } else if (priority == LOG_WARNING) {
     android_log_priority = ANDROID_LOG_WARN;
diff --git a/libc/include/syslog.h b/libc/include/syslog.h
index f396fec..cbceab2 100644
--- a/libc/include/syslog.h
+++ b/libc/include/syslog.h
@@ -35,45 +35,48 @@
 
 __BEGIN_DECLS
 
-#define LOG_EMERG	0
-#define LOG_ALERT	1
-#define LOG_CRIT	2
-#define LOG_ERR		3
-#define LOG_WARNING	4
-#define LOG_NOTICE	5
-#define LOG_INFO	6
-#define LOG_DEBUG	7
+/* Priorities are translated to Android log priorities as shown. */
+#define LOG_EMERG   0 /* ERROR */
+#define LOG_ALERT   1 /* ERROR */
+#define LOG_CRIT    2 /* ERROR */
+#define LOG_ERR     3 /* ERROR */
+#define LOG_WARNING 4 /* WARN */
+#define LOG_NOTICE  5 /* INFO */
+#define LOG_INFO    6 /* INFO */
+#define LOG_DEBUG   7 /* DEBUG */
 
-#define LOG_PRIMASK	7
-#define LOG_PRI(x)	((x) & LOG_PRIMASK)
+#define LOG_PRIMASK 7
+#define LOG_PRI(x) ((x) & LOG_PRIMASK)
 
-#define LOG_KERN	0000
-#define LOG_USER	0010
-#define LOG_MAIL	0020
-#define LOG_DAEMON	0030
-#define LOG_AUTH	0040
-#define LOG_SYSLOG	0050
-#define LOG_LPR		0060
-#define LOG_NEWS	0070
-#define LOG_UUCP	0100
-#define LOG_CRON	0110
-#define LOG_AUTHPRIV	0120
-#define LOG_FTP		0130
-#define LOG_LOCAL0	0200
-#define LOG_LOCAL1	0210
-#define LOG_LOCAL2	0220
-#define LOG_LOCAL3	0230
-#define LOG_LOCAL4	0240
-#define LOG_LOCAL5	0250
-#define LOG_LOCAL6	0260
-#define LOG_LOCAL7	0270
+/* Facilities are currently ignored on Android. */
+#define LOG_KERN     0000
+#define LOG_USER     0010
+#define LOG_MAIL     0020
+#define LOG_DAEMON   0030
+#define LOG_AUTH     0040
+#define LOG_SYSLOG   0050
+#define LOG_LPR      0060
+#define LOG_NEWS     0070
+#define LOG_UUCP     0100
+#define LOG_CRON     0110
+#define LOG_AUTHPRIV 0120
+#define LOG_FTP      0130
+#define LOG_LOCAL0   0200
+#define LOG_LOCAL1   0210
+#define LOG_LOCAL2   0220
+#define LOG_LOCAL3   0230
+#define LOG_LOCAL4   0240
+#define LOG_LOCAL5   0250
+#define LOG_LOCAL6   0260
+#define LOG_LOCAL7   0270
 
-#define LOG_FACMASK	01770
-#define LOG_FAC(x)	(((x) >> 3) & (LOG_FACMASK >> 3))
+#define LOG_FACMASK 01770
+#define LOG_FAC(x) (((x) >> 3) & (LOG_FACMASK >> 3))
 
 #define LOG_MASK(pri) (1 << (pri))
 #define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1)
 
+/* openlog(3) flags are currently ignored on Android. */
 #define LOG_PID    0x01
 #define LOG_CONS   0x02
 #define LOG_ODELAY 0x04
@@ -81,11 +84,11 @@
 #define LOG_NOWAIT 0x10
 #define LOG_PERROR 0x20
 
-extern void closelog(void);
-extern void openlog(const char*, int, int);
-extern int setlogmask(int);
-extern void syslog(int, const char*, ...) __printflike(2, 3);
-extern void vsyslog(int, const char*, va_list) __printflike(2, 0);
+void closelog(void);
+void openlog(const char*, int, int);
+int setlogmask(int);
+void syslog(int, const char*, ...) __printflike(2, 3);
+void vsyslog(int, const char*, va_list) __printflike(2, 0);
 
 __END_DECLS