clang-format the file include/cutils/trace.h
"/home/mi/workspace_vela/nuttx/../apps/frameworks/
system/utils/include/cutils/trace.h", line 154: warning #1731-D:
function must be declared at file scope
void atrace_begin_body(const char*);
^
"/home/mi/workspace_vela/nuttx/../apps/frameworks/
system/utils/include/cutils/trace.h", line 167: warning #1731-D:
function must be declared at file scope
void atrace_end_body(void);
^
"/home/mi/workspace_vela/nuttx/../apps/frameworks/
system/utils/include/cutils/trace.h", line 185: warning #1731-D:
function must be declared at file scope
void atrace_async_begin_body(const char*, int32_t);
^
"/home/mi/workspace_vela/nuttx/../apps/frameworks/
system/utils/include/cutils/trace.h", line 198: warning #1731-D:
function must be declared at file scope
void atrace_async_end_body(const char*, int32_t);
^
Signed-off-by: yukangzhi <yukangzhi@xiaomi.com>
When the type of basic value is double, can't using void *value as buffer to get value.
==3263760==ERROR: AddressSanitizer: stack-buffer-overflow on address 0xefe13c30 at pc 0x577c0356 bp 0xefe139b8 sp 0xefe139a8
WRITE of size 8 at 0xefe13c30 thread T0
#0 0x577c0355 in _dbus_marshal_read_basic dbus/dbus/dbus-marshal-basic.c:581
#1 0x5783bedb in _dbus_type_reader_read_basic dbus/dbus/dbus-marshal-recursive.c:879
#2 0x5776ef72 in dbus_message_iter_get_basic dbus/dbus/dbus-message.c:2376
#3 0x57e06daa in iter_append_iter gdbus/client.c:222
#4 0x57e070b1 in prop_entry_update gdbus/client.c:265
#5 0x57e07454 in prop_entry_new gdbus/client.c:286
#6 0x57e0793a in add_property gdbus/client.c:322
#7 0x57e09abd in properties_changed_non_standard gdbus/client.c:544
#8 0x57df2e00 in signal_filter gdbus/watch.c:394
#9 0x57df4d57 in message_filter gdbus/watch.c:544
#10 0x57752dc6 in dbus_connection_dispatch dbus/dbus/dbus-connection.c:4703
#11 0x57dde7d5 in message_dispatch gdbus/mainloop.c:59
#12 0x5790e3b8 in g_idle_dispatch glib/glib/gmain.c:6157
#13 0x57900a31 in g_main_dispatch glib/glib/gmain.c:3477
#14 0x579080d3 in g_main_context_dispatch glib/glib/gmain.c:4195
#15 0x57908bcc in g_main_context_iterate glib/glib/gmain.c:4271
#16 0x57909e7f in g_main_loop_run glib/glib/gmain.c:4471
#17 0x57dde5b7 in telephonytool_main /home/djz/workspace/test/sim/frameworks/telephony/telephony_tool.c:878
#18 0x56ea66b5 in nxtask_startup sched/task_startup.c:70
#19 0x56e541a8 in nxtask_start task/task_start.c:134
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
There are still three fail test cases (android property test):
1. empty key test, reason: kvdb do not support empty key;
2. long key test, reason: (a) read only property value length can be
arbitrarily-long in android, kvdb do not support; (b) read only
property can be set if the property do not exist before, kvdb
not allowed this action;
3. cached property test, reason: (a) android cached property uses
serial to judge the [key, value] changed, kvdb can't handle this
very well; (b) android cached property return the value pointer
from the shared memory directly for read only property, kvdb
can't handle this well too.
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
when the kvdb has too many kv pairs, after kvdb_list_consume()
blocked in sendmsg (write buffer not enough), the domain socket
buffer layout may became:
[k0_len][v0_len][k0][v0]...[kn_len][vn_len][kn][vn][the last char]
so the client property_list will receive only one char (ret = 1)
after received [k0, v0] ~ [kn, vn], but actually the property list
is not terminated, property_list exit early problem happened.
this problem can be easily reproduced in 86panel by running kvdb
testcase twice.
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
Fix handling logic when local socket pipe is full, server is
blocked and client does not receive the whole message. The client now
waits for the whole message to be received instead of discarding it and
continue, which will break the communication afterwards.
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>