[PW_SID:947676] [v1] dbus: Fix add invalid memory during interface removal#2755
[PW_SID:947676] [v1] dbus: Fix add invalid memory during interface removal#2755BluezTestBot wants to merge 2 commits intoworkflowfrom
Conversation
This patch adds workflow files for ci:
[sync.yml]
- runs every 30 mins.
- sync repo with upstream repo and rebase workflow branch to tip of
master.
- creates PR after reading patches from patchwork.kernel.org
[ci.yml]
- Tests the following checks:
- checkpatch
- gitlint
- make
- make check
[code_scan.yml]
- Static code checker: Coverity and Clang
- Coverity: Submit the result to the coverity website
- Clang Code Scan: Send email with result file to the internal team
To simplify the history, new change will amend to this patch without
creating new patch.
test setp
register_service <uuid>
register_application <uuid>
unregister_service <uuid>
unregister_application
register_service <uuid>
register_application <uuid>
core dump
invalidate_parent_data is called to add the service to the application's
glist when unregister_service. However, this service has already been
added to the glist of root object in register_service. This results in
services existing in both queues,but only the services in the
application's glist are freed upon removal. A null address is stored
in root object's glist, a crash dump will occur when get_object is called.
Add a check for the parent pointer to avoid adding the service again.
0 0x0000007ff7df6058 in dbus_message_iter_append_basic ()
from /usr/lib/libdbus-1.so.3
1 0x00000055555a3780 in append_object (data=0x31306666,
user_data=0x7ffffff760) at /usr/src/debug/bluez5/5.72/gdbus/object.c:1117
2 0x0000007ff7ece0cc in g_slist_foreach () from /usr/lib/libglib-2.0.so.0
3 0x00000055555a37ac in append_object (data=0x5555642cf0,
user_data=0x7ffffff760) at /usr/src/debug/bluez5/5.72/gdbus/object.c:1122
4 0x0000007ff7ece0cc in g_slist_foreach () from /usr/lib/libglib-2.0.so.0
5 0x00000055555a3630 in get_objects (connection=<optimized out>,
message=<optimized out>, user_data=0x555563b390)
at /usr/src/debug/bluez5/5.72/gdbus/object.c:1154
6 0x00000055555a51d0 in process_message (
connection=connection@entry=0x5555639310,
message=message@entry=0x5555649ac0,
method=method@entry=0x55555facf8 <manager_methods>,
iface_user_data=<optimized out>)
at /usr/src/debug/bluez5/5.72/gdbus/object.c:246
7 0x00000055555a575c in generic_message (connection=0x5555639310,
message=0x5555649ac0, user_data=<optimized out>)
Signed-off-by: Shuai Zhang <quic_shuaz@quicinc.com>
|
CheckPatch |
|
GitLint |
|
BuildEll |
|
BluezMake |
|
MakeCheck |
|
MakeDistcheck |
|
CheckValgrind |
|
CheckSmatch |
|
bluezmakeextell |
|
IncrementalBuild |
|
ScanBuild |
a6c8b9c to
d9941ad
Compare
a65fdba to
89a49a5
Compare
df874a4 to
b5c1fe6
Compare
test setp
register_service
register_application
unregister_service
unregister_application
register_service
register_application
core dump
invalidate_parent_data is called to add the service to the application's
glist when unregister_service. However, this service has already been
added to the glist of root object in register_service. This results in
services existing in both queues,but only the services in the
application's glist are freed upon removal. A null address is stored
in root object's glist, a crash dump will occur when get_object is called.
Add a check for the parent pointer to avoid adding the service again.
0 0x0000007ff7df6058 in dbus_message_iter_append_basic ()
from /usr/lib/libdbus-1.so.3
1 0x00000055555a3780 in append_object (data=0x31306666,
user_data=0x7ffffff760) at /usr/src/debug/bluez5/5.72/gdbus/object.c:1117
2 0x0000007ff7ece0cc in g_slist_foreach () from /usr/lib/libglib-2.0.so.0
3 0x00000055555a37ac in append_object (data=0x5555642cf0,
user_data=0x7ffffff760) at /usr/src/debug/bluez5/5.72/gdbus/object.c:1122
4 0x0000007ff7ece0cc in g_slist_foreach () from /usr/lib/libglib-2.0.so.0
5 0x00000055555a3630 in get_objects (connection=,
message=, user_data=0x555563b390)
at /usr/src/debug/bluez5/5.72/gdbus/object.c:1154
6 0x00000055555a51d0 in process_message (
connection=connection@entry=0x5555639310,
message=message@entry=0x5555649ac0,
method=method@entry=0x55555facf8 <manager_methods>,
iface_user_data=)
at /usr/src/debug/bluez5/5.72/gdbus/object.c:246
7 0x00000055555a575c in generic_message (connection=0x5555639310,
message=0x5555649ac0, user_data=)
Signed-off-by: Shuai Zhang quic_shuaz@quicinc.com
gdbus/object.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)