Merge "Add camera ping command and release message."
diff --git a/include/private/android_filesystem_config.h b/include/private/android_filesystem_config.h
index a3d5e62..8e9edd9 100644
--- a/include/private/android_filesystem_config.h
+++ b/include/private/android_filesystem_config.h
@@ -119,6 +119,7 @@
{ "diag", AID_DIAG, },
{ "net_bt_admin", AID_NET_BT_ADMIN, },
{ "net_bt", AID_NET_BT, },
+ { "sdcard_r", AID_SDCARD_R, },
{ "sdcard_rw", AID_SDCARD_RW, },
{ "media_rw", AID_MEDIA_RW, },
{ "vpn", AID_VPN, },
diff --git a/libcutils/Android.mk b/libcutils/Android.mk
index dcf859b..3809733 100644
--- a/libcutils/Android.mk
+++ b/libcutils/Android.mk
@@ -94,6 +94,17 @@
include $(BUILD_HOST_STATIC_LIBRARY)
+# Static library for host, 64-bit
+# ========================================================
+include $(CLEAR_VARS)
+LOCAL_MODULE := lib64cutils
+LOCAL_SRC_FILES := $(commonSources) $(commonHostSources) dlmalloc_stubs.c
+LOCAL_LDLIBS := -lpthread
+LOCAL_STATIC_LIBRARIES := lib64log
+LOCAL_CFLAGS += $(hostSmpFlag) -m64
+include $(BUILD_HOST_STATIC_LIBRARY)
+
+
# Shared and static library for target
# ========================================================
diff --git a/libcutils/str_parms.c b/libcutils/str_parms.c
index 14fecec..16138f6 100644
--- a/libcutils/str_parms.c
+++ b/libcutils/str_parms.c
@@ -158,15 +158,18 @@
const char *value)
{
void *old_val;
- char *tmp;
+ void *tmp_key;
+ void *tmp_val;
- tmp = strdup(value);
- old_val = hashmapPut(str_parms->map, (void *)key, tmp);
+ tmp_key = strdup(key);
+ tmp_val = strdup(value);
+ old_val = hashmapPut(str_parms->map, tmp_key, tmp_val);
if (old_val) {
free(old_val);
} else if (errno == ENOMEM) {
- free(tmp);
+ free(tmp_key);
+ free(tmp_val);
return -ENOMEM;
}
return 0;
@@ -298,6 +301,7 @@
int ret;
str_parms = str_parms_create_str(str);
+ str_parms_add_str(str_parms, "dude", "woah");
str_parms_dump(str_parms);
out_str = str_parms_to_str(str_parms);
str_parms_destroy(str_parms);
diff --git a/liblog/Android.mk b/liblog/Android.mk
index bd4fed4..bd2590e 100644
--- a/liblog/Android.mk
+++ b/liblog/Android.mk
@@ -40,6 +40,7 @@
liblog_host_sources := $(liblog_sources) fake_log_device.c
+
# Static library for host
# ========================================================
LOCAL_MODULE := liblog
@@ -48,6 +49,17 @@
LOCAL_CFLAGS := -DFAKE_LOG_DEVICE=1
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# Static library for host, 64-bit
+# ========================================================
+include $(CLEAR_VARS)
+LOCAL_MODULE := lib64log
+LOCAL_SRC_FILES := $(liblog_host_sources)
+LOCAL_LDLIBS := -lpthread
+LOCAL_CFLAGS := -DFAKE_LOG_DEVICE=1 -m64
+include $(BUILD_HOST_STATIC_LIBRARY)
+
+
# Shared and static library for target
# ========================================================
include $(CLEAR_VARS)
diff --git a/libsysutils/src/SocketClient.cpp b/libsysutils/src/SocketClient.cpp
index 4a7c82d..1533120 100644
--- a/libsysutils/src/SocketClient.cpp
+++ b/libsysutils/src/SocketClient.cpp
@@ -140,7 +140,7 @@
}
while (brtw > 0) {
- rc = write(mSocket, p, brtw);
+ rc = send(mSocket, p, brtw, MSG_NOSIGNAL);
if (rc > 0) {
p += rc;
brtw -= rc;
diff --git a/rootdir/init.rc b/rootdir/init.rc
index 2e8f7d2..438ac83 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -1,3 +1,9 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# IMPORTANT: Do not create world writable files or directories.
+# This is a common source of Android security bugs.
+#
+
import /init.${ro.hardware}.rc
on early-init
@@ -163,6 +169,9 @@
mkdir /data/misc/wifi 0770 wifi wifi
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
mkdir /data/local 0751 root root
+
+ # For security reasons, /data/local/tmp should always be empty.
+ # Do not place files or directories in /data/local/tmp
mkdir /data/local/tmp 0771 shell shell
mkdir /data/data 0771 system system
mkdir /data/app-private 0771 system system