-
Notifications
You must be signed in to change notification settings - Fork 0
[PW_SID:947676] [v1] dbus: Fix add invalid memory during interface removal #2755
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: workflow
Are you sure you want to change the base?
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(-)