Merge "kill HAVE_FORKEXEC"
diff --git a/init/builtins.c b/init/builtins.c
index c192551..7f4daa7 100644
--- a/init/builtins.c
+++ b/init/builtins.c
@@ -433,6 +433,7 @@
             sprintf(tmp, "/dev/block/loop%d", n);
             loop = open(tmp, mode);
             if (loop < 0) {
+                close(fd);
                 return -1;
             }
 
diff --git a/init/devices.c b/init/devices.c
index 2fa5c22..a95111a 100644
--- a/init/devices.c
+++ b/init/devices.c
@@ -458,7 +458,7 @@
 
     /* skip "/devices/platform/<driver>" */
     parent = strchr(uevent->path + pdev->path_len, '/');
-    if (!*parent)
+    if (!parent)
         goto err;
 
     if (!strncmp(parent, "/usb", 4)) {
diff --git a/libbacktrace/Android.mk b/libbacktrace/Android.mk
index e2c0a4d..01b4f4d 100755
--- a/libbacktrace/Android.mk
+++ b/libbacktrace/Android.mk
@@ -141,6 +141,8 @@
 LOCAL_SRC_FILES := \
 	BacktraceMap.cpp \
 
+LOCAL_MULTILIB := both
+
 include $(BUILD_HOST_SHARED_LIBRARY)
 
 endif # HOST_OS-darwin
diff --git a/liblog/fake_log_device.c b/liblog/fake_log_device.c
index 136792d..b8d87bb 100644
--- a/liblog/fake_log_device.c
+++ b/liblog/fake_log_device.c
@@ -352,7 +352,7 @@
 static void showLog(LogState *state,
         int logPrio, const char* tag, const char* msg)
 {
-#if defined(HAVE_LOCALTIME_R)
+#if !defined(_WIN32)
     struct tm tmBuf;
 #endif
     struct tm* ptm;
@@ -377,7 +377,7 @@
      * in the time stamp.  Don't use forward slashes, parenthesis,
      * brackets, asterisks, or other special chars here.
      */
-#if defined(HAVE_LOCALTIME_R)
+#if !defined(_WIN32)
     ptm = localtime_r(&when, &tmBuf);
 #else
     ptm = localtime(&when);
diff --git a/liblog/log_time.cpp b/liblog/log_time.cpp
index 755c2d9..209a9da 100644
--- a/liblog/log_time.cpp
+++ b/liblog/log_time.cpp
@@ -39,7 +39,7 @@
 #endif
 
     struct tm *ptm;
-#if (defined(HAVE_LOCALTIME_R))
+#if !defined(_WIN32)
     struct tm tmBuf;
     ptm = localtime_r(&now, &tmBuf);
 #else
@@ -78,7 +78,7 @@
                 ++ret;
             }
             now = tv_sec;
-#if (defined(HAVE_LOCALTIME_R))
+#if !defined(_WIN32)
             ptm = localtime_r(&now, &tmBuf);
 #else
             ptm = localtime(&now);
diff --git a/liblog/logprint.c b/liblog/logprint.c
index 244f723..9b5a543 100644
--- a/liblog/logprint.c
+++ b/liblog/logprint.c
@@ -726,7 +726,7 @@
     const AndroidLogEntry *entry,
     size_t *p_outLength)
 {
-#if defined(HAVE_LOCALTIME_R)
+#if !defined(_WIN32)
     struct tm tmBuf;
 #endif
     struct tm* ptm;
@@ -749,7 +749,7 @@
      * in the time stamp.  Don't use forward slashes, parenthesis,
      * brackets, asterisks, or other special chars here.
      */
-#if defined(HAVE_LOCALTIME_R)
+#if !defined(_WIN32)
     ptm = localtime_r(&(entry->tv_sec), &tmBuf);
 #else
     ptm = localtime(&(entry->tv_sec));
diff --git a/sdcard/sdcard.c b/sdcard/sdcard.c
index 3fc3577..9ba81ff 100644
--- a/sdcard/sdcard.c
+++ b/sdcard/sdcard.c
@@ -1269,6 +1269,7 @@
         return -errno;
     }
     out.size = res;
+    out.padding = 0;
     fuse_reply(fuse, hdr->unique, &out, sizeof(out));
     return NO_STATUS;
 }