diff --git a/assets/shadowsocks b/assets/shadowsocks index 9e9eb45f..6c5b63ea 100755 Binary files a/assets/shadowsocks and b/assets/shadowsocks differ diff --git a/jni/Android.mk b/jni/Android.mk index d88ba4ca..2e834537 100755 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -38,7 +38,7 @@ include $(CLEAR_VARS) LOCAL_MODULE := shadowsocks LOCAL_SRC_FILES := shadowsocks/local.c shadowsocks/encrypt.c -LOCAL_CFLAGS := -Wall -O2 -I$(LOCAL_PATH)/libev/ -I$(LOCAL_PATH)/openssl/include -std=c99 +LOCAL_CFLAGS := -Wall -O2 -fno-strict-aliasing -I$(LOCAL_PATH)/libev/ -I$(LOCAL_PATH)/openssl/include LOCAL_STATIC_LIBRARIES := libev libcrypto diff --git a/jni/shadowsocks/local.c b/jni/shadowsocks/local.c index 4e46fb08..a6c3a02d 100644 --- a/jni/shadowsocks/local.c +++ b/jni/shadowsocks/local.c @@ -446,6 +446,7 @@ struct remote* new_remote(int fd) { remote->recv_ctx->connected = 0; remote->send_ctx->remote = remote; remote->send_ctx->connected = 0; + remote->buf_len = 0; return remote; } @@ -490,6 +491,7 @@ struct server* new_server(int fd) { server->e_ctx = NULL; server->d_ctx = NULL; } + server->buf_len = 0; return server; } void free_server(struct server *server) { diff --git a/libs/armeabi/shadowsocks b/libs/armeabi/shadowsocks index 9e9eb45f..6c5b63ea 100755 Binary files a/libs/armeabi/shadowsocks and b/libs/armeabi/shadowsocks differ